为什么要用where 1=1
where 1=1; 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句,1=1 是永恒成立的,意思无条件的,也就是说在SQL语句中有没有这个1=1都可以。如:web界面查询用户的信息,where默认为1=1,这样用户即使不选择任何条件,sql查询也不会出错。如果用户选择了姓名,那么where变成了where 1=1 and 姓名='用户输入的姓名',如果
MySQL 优化之 index_merge (索引合并)
深入理解 index merge 是使用索引进行优化的重要基础之一。理解了 index merge 技术,我们才知道应该如何在表上建立索引。1. 为什么会有index merge我们的 where 中可能有多个条件(或者join)涉及到多个字段,它们之间进行 AND 或者 OR,那么此时就有可能会使用到 index merge 技术。index merge 技术如果简单的说...
mysql explain用法和结果的含义
重点是第二种用法,需要深入的了解。先看一个例子:mysql> explain select * from t_order; +----+-------------+---------+------+---------------+------+---------+------+--------+-------+ | id | select_type | table ...
【SQL优化】SQL优化工具
SQLAdvisor 是由美团点评公司北京DBA团队开发维护的 SQL 优化工具:输入SQL,输出索引优化建议。 它基于 MySQL 原生词法解析,再结合 SQL 中的 where 条件以及字段选择度、聚合条件、多表 Join 关系等最终输出最优的索引优化建议。目前 SQLAdvisor 在公司内部大量使用,较为成熟、稳定。1. SQLAdvisor安装1.1 拉取最...
mysql update join优化update in查询效率
数据库版本:5.6.16update in 修改数据,结果执行时间过慢,一直不出结果。SQL语句及执行计划如下:UPDATE erp_order_extra SET last_time=123123123123 WHERE order_id IN (SELECT eo.order_id FROM jiuxianweb.erp_order eo WHERE eo.channel_ordersn='18161116045333705180');+----+-------------------...
MySQL exists 优化 in 效率
原句,执行时间:2.78sUPDATE pro_ProductEvaluateSET hasPic = 1WHERE ID IN ( SELECT c.ID FROM ( SELECT a.ID FROM pro_ProductEvaluate a INNER JOIN pro_ProductEvaluateImage b ON a.ID = b.pro_ProductEvaluateID WHERE 1 = 1 AND a.CreateTime >= '2016-06-03 01:05:00' AND a.hasPic IS NULL AN...