MySQL(七)–关于慢查询
MySQL服务器处理查询请求的整个过程:
- 客户端发送SQL强求给服务器
- 服务器检查是否可以在查询缓存中命中该SQL
- 服务器端进行SQL解析,预处理,再由优化器生成对应的执行计划
- 根据执行计划,调用存储引擎API来查询数据
- 将结果返回给客户端
查询性能低下最基本的原因是访问的数据太多。
一,如何优化慢查询?
1,首先开启慢查询日志:
如:long_query_time(多长时间视为慢查询)
slow_query_log(是否开启了慢查询日志,off表示未开启)
slow_query_log_file(慢查询日志存放的位置)
2.慢查询优化思路:
3,分析慢查询语句,来进行相应的优化
①建立索引
②减少表之间的关联
③优化sql,尽量让sql很快定位数据,不要让sql做全表查询,应该走索引,把数据量大的表排在前面
④简化查询字段,没用的字段不要,已经对返回结果的控制,尽量返回少量数据
二,数据库优化的方法:
1,SQL语句优化:
①应该尽量避免在where子句中使用!=或者<>操作符,否则将引擎放弃使用索引而进行全表扫描
②应尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用而进行全表扫描
③很多时候,用exits代替in是一个很好的选择
④用where子句替代ha