在MySQL中索引也叫做键(key),索引的基本功能是存储引擎快速的查找数据。索引在性能优化时有非常关键的作用,尤其是在数据量较大时,索引能让数据的查找速度有比较明显的提高。创建索引后,存储引擎会优先在查找数据索引中查找,而不是在海量的数据中查找数据,因此查询速度会成数量级的提高。索引是优化查询性能最有效的手段。
1. 创建MySQL索引
MySQL创建索引语法如下:
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
[USING index_type]
ON tbl_name (index_col_name,...)
MySQL存储引擎对索引类型的支持情况如下:
存储引擎
允许的索引类型
MyISAM
BTREE
InnoDB
BTREE
MEMORY/HEAP
HASH、BTREE
现有订单表orders,对其userId列创建索引,SQL语句如下:
CREATE INDEX order_customerId ON orders (userId);
创建索引时,可以指定多个列创建联合索引,如,为订单表orders,创建userId和productId列的索引,SQL语句如下:
CREATE INDEX order_customerId_productId ON orders (userId,productId);
2. MySQL索引查询
MySQL索引查询语法如下:
SHOW INDEX FROM table_name;
如,查询订单表orders所有的索引,SQL语句如下:
SHOW INDEX FROM orders;
3. MySQL索引删除
删除MySQL索引语法如下:
DROP INDEX index_name ON table_name;
或:
ALTER TABLE table_name DROP INDEX index_name
如,删除订单表orders的order_customerId索引,SQL语句如下:
DROP INDEX order_customerId ON orders;