查詢優化
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