当前位置: 首页 > Linux

Mysql查询优化总结

时间:2023-04-06 22:25:12 Linux

使用慢查询日志发现慢查询,使用执行计划判断查询是否正常运行,经常测试你的查询是否优化运行。性能会随时间变化,避免对整张表使用count(*),它可能会锁住整张表,使查询保持一致以便后续类似的查询可以使用查询缓存,适当的时候使用GROUPBY而不是DISTINCT,,keep索引简单,不要在多个索引中包含同一列,有时MySQL会使用错误的索引,对于这种情况使用USEINDEX,检查使用SQL_MODE=STRICT的问题,对于记录数小于5的索引字段,在UNION中使用LIMIT不是OR。为了避免更新前SELECT,使用INSERTONDUPLICATEKEY或INSERTIGNORE,不要使用UPDATE来实现,不要使用MAX,使用索引字段和ORDERBY子句,LIMITM,N在某些情况下实际上会减慢查询速度,谨慎使用,在WHERE子句中使用UNION代替子查询,考虑持久连接而不是多连接以减少开销,基准查询,包括使用服务器上的负载,有时一个简单的查询会影响其他查询,当负载增加时您的服务器,使用SHOWPROCESSLIST查看慢速和有问题的查询,并在开发环境生成的镜像数据中测试所有可疑查询。EXPLAINSELECT查询用于跟踪和查看效果。使用EXPLAIN关键字可以让你知道MySQL是如何处理你的SQL语句的。这可以帮助您分析查询语句或表结构中的性能瓶颈。EXPLAIN的查询结果还会告诉你你的索引主键是怎么用的,你的数据表是怎么查找排序的……等等。