索引设计的小技巧

  • 主键索引
  • 为频繁查询的字段建立索引
  • 避免为”大字段”建立索引
  • 选择区分度大的列作为索引
  • 尽量为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

分类: mysql

0 条评论

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注