Skip to content

MySQL查询优化技巧

概念

索引是数据库表中一列或多列的值的排序列表,它允许快速访问表中特定行。索引可以基于表中的一列或多列创建,最常见的索引类型有:

  • 主键索引:自动创建,保证表中每行的唯一性
  • 唯一索引:保证表中每列或列组合的唯一性
  • 普通索引:最基本的索引类型,用于快速检索数据
  • 全文索引:用于全文搜索

单列索引

适用于精确查询。

sql
CREATE INDEX index_name ON table_name(column_name);

复合索引

适用于多条件查询。

sql
CREATE INDEX index_name ON table_name(column1, column2, ...)

使用场景

  • Where子句中出现的列
  • Join操作中的列,即ON子句中的条件
  • ORDER BY字句中出现的列
  • GROUP BY字句中出现的列

注意事项

  • 索引会占用额外的磁盘空间:虽然索引可以加快查询速度,但也会增加插入、删除和更新数据时的开销,因为索引本身也需要被更新
  • 选择合适的列:只有那些在查询条件、连接条件、排序和分组中频繁出现的列才应该被索引
  • 避免过多的索引:过多的索引会降低写操作的性能,因为每次插入、更新或删除数据时,数据库都需要更新所有的索引