索引设计的小技巧
- 主键索引
- 为频繁查询的字段建立索引
- 避免为”大字段”建立索引
- 选择区分度大的列作为索引
- 尽量为ORDER BY 和 GROUP BY 后面的字段建立索引
- 不要在条件中使用函数
- 不要建立太多的索引
- 频繁增删改的字段不要建立索引
- 对于频繁的查询,优先考虑使用覆盖索引
- 尽量避免使用外键约束
数据库 SQL 开发规范
- 尽量不在数据库做运算,复杂运算需移到业务应用里完成
- 优化对性能影响较大的 SQL 语句
- 充分利用表上已经存在的索引
- 禁止使用 SELECT * 必须使用 SELECT <字段列表> 查询
- 禁止使用不含字段列表的 INSERT 语句
- 建议使用预编译语句进行数据库操作
- 避免数据类型的隐式转换
- 避免使用子查询,可以把子查询优化为 join 操作
- 避免使用 JOIN 关联太多的表
- 减少同数据库的交互次数
- 对应同一列进行 or 判断时,使用 in 代替 or
- 禁止使用 order by rand() 进行随机排序
- WHERE 从句中禁止对列进行函数转换和计算
- 在明显不会有重复值时使用 UNION ALL 而不是 UNION
- 拆分复杂的大 SQL 为多个小 SQL
- 程序连接不同的数据库使用不同的账号,禁止跨库查询
sql优化

优化慢SQL

0 条评论