Mysql索引
一、索引:
索引是对数据库表中的一列或者多列的值进行排序的一种结构,它是一个单独的、存储在磁盘上的数据结构,它们包含着对数据表里所有记录的引用指针。
二、索引的分类:
普通索引:
1. 创建索引: 法一: CREATE INDEX indexName ON mytable(username(length)); -- 如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length。 例:CREATE INDEX indexAge ON employee(age); 法二: ALTER table tableName ADD INDEX indexName(columnName); 例:ALTER table employee ADD INDEX indexAge(age); 法三: CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)) ); 2.删除索引: DROP INDEX [indexName] ON mytable; 例子:DROP INDEX indexAge ON employee;
唯一索引:
1. 创建索引: 法一: CREATE UNIQUE INDEX indexName ON mytable(username(length)) 例:CREATE UNIQUE INDEX indexAge ON employee(age); 法二: ALTER table mytable ADD UNIQUE [indexName] (username(length)) 例:ALTER table employee ADD UNIQUE indexAge(age); 法三: CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, UNIQUE [indexName] (username(length)) ); 2.删除索引: ALTER TABLE tableName DROP INDEX indexName; 例子:ALTER TABLE employee DROP INDEX indexAge;组合索引:
1. 创建索引: CREATE INDEX multilind ON employee(age,sex); 2.删除索引: ALTER TABLE employee DROP INDEX multilind;
三、索引优化: