MySQL索引使用-创建、查看、删除MySQL索引

 2015年10月12日    589     声明


在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;