【MySQL】查询语句优化
原文: http://blog.gqylpy.com/gqy/389 MySQL的性能优化包罗甚广:索引优化、查询优化、查询缓存、服务器设置优化、操作系统及硬件优化、应用层优化(web服务器、缓存)等等。本文提到的优化技巧更适用于开发人员,都是从网络上收集和自己整理的,主要是查询语句上面的优化,其它层面的优化技巧在此不做记录。 整理如下 合理创建索引 count 的优化 避免使用不兼容的数据类型 索引字段上进行运算会使索引失效 尽量避免使用 != 、 is null 、 is not null 、 in 、 not in 这样的操作符 尽量使用数字型字段 合理使用 exists 、 not exists 子句 能够用 between 的就不要用 in 能够用 distinct 的就不要用 group by 尽量不要使用 select info 语句,它会导致表锁,阻止其它用户访问该表 必要时强制查询优化器使用某个索引 消除对大型表行数据的顺序存取 程序中如果需要一次性对同一个表插入多条数据,应写成一条语句 查询的开销指标 执行时间 检查的行数 返回的行数 建立索引的几个准则 合理的建立索引能够加快数据读取效率,不合理的建立索引反而会拖慢数据的响应速度。 索引越多,更新数据的速度越慢。 尽量在采用 MyISAM 作为存储引擎的时候使用索引(因为MySQL以Btree存储索引),而不是