MySQL 支持哪些类型的索引?
主键索引(Primary Key Index)
唯一索引(Unique Index)
普通索引(Normal Index)
全文索引(Full-text Index)
组合索引(Composite Index)
1. 索引的使用
- 创建索引
使用 CREATE INDEX 语句或在创建表时直接指定索引。
bash
-- 创建单列索引
CREATE INDEX index_name ON table_name(column_name);
-- 创建唯一索引
CREATE UNIQUE INDEX index_name ON table_name(column_name);
-- 创建组合索引
CREATE INDEX index_name ON table_name(column1, column2);
- 查看索引
bash
SHOW INDEX FROM table_name;
- 删除索引
-- 删除表的某个索引
bash
DROP INDEX index_name ON table_name;
-- 删除表的主键索引
bash
ALTER TABLE table_name DROP PRIMARY KEY;
- 使用 EXPLAIN 分析查询执行计划
bash
EXPLAIN SELECT * FROM table_name WHERE column_name = 'value';
- 如何优化查询,使索引生效
- 确保查询中的条件列上有索引。
- 尽量避免在索引列上使用函数或运算符。
- 使用合适的索引类型,如全文索引适用于文本搜索。
- 如何避免索引失效?
- 尽量避免使用 NOT、<、>、!= 等不利于索引的条件。
- 注意索引列的数据类型匹配。
- 小心使用 OR 连接的条件。
- 什么情况下不适合使用索引
- 当表中的数据量很小,且查询的数据比例很大时,可能不适合使用索引。
- 经常进行大批量的插入、更新、删除操作时,索引的维护成本可能较高。