优化思路
详细的MySQL优化步骤如下:
- 检查数据表结构,改善不完善设计
- 跑一遍主要业务,收集常用的数据库查询SQL
- 分析查询SQL,适当拆分,添加索引等优化查询
- 优化SQL的同时,优化代码逻辑
- 添加本地缓存和redis缓存
尽可能不要使用NULL值
因为建表的时候,如果不对创建的值设置默认值,MySQL都会设置默认为NULL
。那么为啥用NULL
不好呢?
NULL
使得索引维护更加复杂,强烈建议对索引列设置NOT NULL
NOT IN
、!=
等负向条件查询在有NULL
值的情况下返回永远为空结果,查询容易出错NULL
列需要一个额外字节作为判断是否为NULL
的标志位- 使用
NULL
时和该列其他的值可能不是同种类型,导致问题。(在不同的语言中表现不一样) - MySQL难以优化对可为
NULL
的列的查询
所以对于那些以前偷懒的字段,手动设置一个默认值吧,空字符串呀,0呀补上。
虽然这种方法对于MySQL的性能来说没有提升多少,但是这是一个好习惯,而且以小见大,不要忽略这些细节。
添加索引
对于经常查询的字段,请加上索引,有索引和没有索引的查询速度相差十倍甚至