索引是在数据库表的列上构建的,使用索引可以快速找到存储在表中的特定数据。MySQL中,索引是在表的一列或多列上构建的,可以提高查询性能。
索引的类型:
- 主键索引(PRIMARY KEY):唯一标识表中的每行数据,不能有重复值。
- 唯一索引(UNIQUE):确保列中的数据是唯一的,即列中的数据不能重复。
- 全文索引(FULLTEXT):用于全文检索,可以提高查询长文本数据的性能。
- 普通索引(INDEX):基本索引类型,没有唯一性的限制。
- 组合索引:在多个列上构建的索引,可以覆盖多个列的查询。
- 空间索引(SPATIAL):对空间数据类型的列建立索引,适用于地理空间数据类型。
创建索引的SQL语法:
-- 创建主键索引
ALTER TABLE table_name ADD PRIMARY KEY (column_name);
-- 创建唯一索引
ALTER TABLE table_name ADD UNIQUE (column_name);
-- 创建全文索引
ALTER TABLE table_name ADD FULLTEXT (column_name);
-- 创建普通索引
ALTER TABLE table_name ADD INDEX index_name (column_name);
-- 创建组合索引
ALTER TABLE table_name ADD INDEX index_name (column_name1, column_name2, ...);
-- 创建空间索引
ALTER TABLE table_name ADD SPATIAL (column_name);
查看索引:
-- 查看表中的索引
SHOW INDEX FROM table_name;
删除索引:
-- 删除索引
DROP INDEX index_name ON table_name;
请注意,索引可以提高查询速度,但也会降低写入性能,因为索引也需要维护。在添加索引前,应考虑到这些潜在的影响。