2016/11/03_sql optimization principle

表设计时的优化

  • 字段设计时使用not null

  • 大表按业务需求拆分成小表 比如说时间

  • 字段尽量设计为定长

索引优化

  • 经常在where子句使用的列,设置索引

  • 多个列where或者order by子句的,建立复合索引

  • 可以限制数据量最小的索引,放在where条件的最左边

  • 当子查询比较耗时或数据量大时,为了减少扫描数据,建议把母查询的条件为赋予子查询

语句优化(慢查询优化)

  • 使用explain和profile分析查询语句

  • 查看慢查询日志

  • 千万级分页时使用limit

  • 不要select *

  • 多表连接时 小表join大表

  • 经常使用的查询,可以开启缓存

  • 不要使用not in和<>操作

Last updated