MySQL查询优化和配置优化

查询优化

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描。
4.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:

select id from t where num=10 or num=20	
可以这样查询:	
select id from t where num=10	
union all	
select id from t where num=20

5.对于连续的数值,能用 between 就不要用 in 了:
select id from t where num between 1 and 3
6.应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。如:
7.任何地方都不要使用 select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段。
8.避免在where查询条件左边使用表达公式

配置优化

  • max_connections 最大连接数
  • read_buffer_size 扫描表的时候用到的缓冲区
  • sort_buffer_size 排序的时候用到的缓冲区
  • innodb_buffer_pool_size 索引的缓存

相关命令,查看所有配置

show global status

其他优化

数据库主从、主主
参考https://mp.csdn.net/mdeditor/97444022#

参考

参考文章:https://www.cnblogs.com/zhang-bo/p/9138151.html
参考:https://www.jianshu.com/p/37ecd4777af0
文件描述配置:https://blog.csdn.net/genzld/article/details/86564821

猜你喜欢

转载自blog.csdn.net/qq_19107011/article/details/96324343
今日推荐