MySQL的SQL规范

良好的 SQL 习惯能大大降低慢查询出现的概率,下面主要介绍一些 SQL 规范

避免隐式转换

当操作符与不同类型的操作数一起使用时,会发生类型转换以使操作数兼容。则会发生转换隐式
隐式转换的类型主要有字段类型不一致、in参数包含多个类型、字符集类型或校对规则不一致等
隐式类型转换可能导致无法使用索引、查询结果不准确等

尽量不使用 select * ,只选择需要的字段

因为使用 selec * 会读取不需要的列,会增加 CPU 负载、磁盘 I/O、网络流量的消耗,并且容易在增加或者删除字段后导致程序报错

禁止单条 SQL 语句同时更新多张表

禁止使用以 “%” 开头的模糊查询

以 “%” 开头的模糊查询大都是不能使用索引的

在 SQL 中不建议使用 sleep()

使用 sleep() 可能会增加 SQL 加锁的时间,从而影响并发性能

避免大表的 join

可能会导致数据库高负载,从而影响其他查询

同一张表的多条 alter 语句要合成一次操作