SQL查询及索引优化
避免使用 Like 模糊查询
查询时只列出需要查询的字段,而不是用SELECT *
不在 MySQL 中进行运算,减轻 MySQL 的压力
经常查询的字段,创建合适的索引,提高查询效率(在 WHERE、GROUP BY 和 ORDER BY 列加索引)
使用慢查询日志slow-log,找出执行慢的查询
使用 EXPLAIN 来决定查询功能是否合适
当只要一行数据时使用LIMIT1
数据量大的表,InnoDB 不要轻易 select count(*),性能消耗极大,可能锁表,最好count一个字段,比如count(id),或者count(1)
避免使用 ORDER BY RAND()
这些操作都是比较耗资源的DISTINCT、COUNT、GROUP BY、各种MySQL函数
在Join表的时候使用相当类型的例,并将其索引
保证索引简单,不要在同一列上加多个索引
使用索引字段和 ORDER BY 来代替 MAX
当服务器的负载增加时,使用SHOW PROCESSLIST来查看慢的/有问题的查询。
Last updated
Was this helpful?