当前位置:首页 > 问答 > 正文

数据库优化|查询加速 MySQL索引类型有哪些、MySQL索引类型汇总

🔍 MySQL索引类型汇总(2025-08参考)

1️⃣ B-Tree索引

  • 默认索引类型,适合等值查询范围查询(如=, >, <, BETWEEN
  • 适用场景:大多数OLTP场景,如主键、普通字段查询

2️⃣ 哈希索引

  • 基于哈希表,仅支持等值查询(),不支持排序/范围查询
  • ⚡️ 超快查询,但不支持部分匹配(如LIKE 'abc%'
  • 仅Memory引擎支持,InnoDB有自适应哈希(内部优化)

3️⃣ 全文索引(FULLTEXT)

数据库优化|查询加速 MySQL索引类型有哪些、MySQL索引类型汇总

  • 专为文本搜索设计,支持MATCH AGAINST语法
  • 🌟 适用场景:文章关键词搜索、长文本匹配

4️⃣ 空间索引(R-Tree)

  • 用于地理数据(如GIS坐标),支持空间函数(ST_Distance等)
  • 仅MyISAM/InnoDB(MySQL 5.7+)支持

5️⃣ 复合索引(联合索引)

  • 多列组合索引,遵循最左前缀原则(如(a,b,c)可加速aa,b查询)
  • 🚀 查询加速关键:合理设计列顺序(高频查询列靠左)

6️⃣ 覆盖索引

  • 索引包含查询所需全部字段,避免回表(如SELECT id,name FROM users WHERE id=1,若索引含id,name

7️⃣ 前缀索引

数据库优化|查询加速 MySQL索引类型有哪些、MySQL索引类型汇总

  • 对长字符串前N个字符建索引(如ALTER TABLE t ADD INDEX (title(10))
  • 📏 平衡存储与查询效率,需测试合适长度

8️⃣ 唯一索引

  • 确保列值唯一(UNIQUE),允许NULL值(InnoDB中NULL可重复)

💡 优化小贴士

  • 避免过度索引:写操作变慢,占用存储
  • 定期分析慢查询(EXPLAIN + 慢日志
  • InnoDB推荐用自增主键,避免B+树频繁分裂

(注:2025年MySQL 8.x+可能引入新特性,建议测试验证🎯)

发表评论