mysql优化

Mysql优化可分为三部分:索引的优化、SQL语句优化、表的优化


索引优化可以遵循以下几个原则:

  1. 联合索引最左前缀匹配原则
  2. 尽量把字段长度小的列放在联合索引的最左侧(字段越小,一页存储的数据量越大,IO性能就越好)
  3. order by 有多个列排序的,应该建立联合索引
  4. 对于频繁的查询优先考虑使用覆盖索引
  5. 前导模糊查询不会使用索引,比如:like %aaa%
  6. 负向条件不会使用索引,如 !=,<>,not like,not in,not exists
  7. 对于where子句中经常使用的列,最好设置索引

SQL语句优化,可以通过explain查看SQL的执行计划,优化语句原则:

  1. 在where和order by涉及的列上建立合适的索引,避免全表扫描
  2. 任何查询都不要使用select *,而是用具体的字段代替
  3. 多表连接时,尽量小表驱动大表,即小表join大表
  4. 用exists代替in
  5. 尽量避免在where子句中对字段进行函数操作

数据库表优化:

  1. 表字段尽可能用not null
  2. 字段长度固定表查询会更快
  3. 将数据库大表按照时间或者一些标志拆分成小表
  4. 水平拆分:将记录散列到不同的表中,每次从分表查询
  5. 垂直拆分:将表中的大字段单独拆分到另一张表,形成一对一的关系

你可能感兴趣的:(mysql优化)