表的索引

来源:互联网 发布:c语言代码 编辑:程序博客网 时间:2024/06/05 04:25

索引用来排序数据以加快搜索和排序操作的速度。
注意:
1. 索引改善检索操作的性能,但降低了数据插入、修改和删除的性能。在执行这些操作时,DBMS必须动态的更新索引。
2. 索引数据可能有占用大量的存储空间。
3. 并非所有数据都适合做索引。取值不多的数据(如省)不如具有更多可能值(如姓或名)的数据,能通过索引得到那么多的好处。
4. 索引用于数据过滤和数据排序。如果你经常以特定的顺序排序数据,则该数据可能适合做索引。
5. 可以在索引中定义多个列。

普通索引

创建索引

CREATE INDEX prod_name_ind ON Products (prod_name);

索引必须唯一命名。
修改表结构添加索引

ALTER TABLE Products ADD INDEX prod_name_ind(prod_name);

创建表时直接指定索引

CREATE TABLE Products(  prod_id    char(10)      NOT NULL ,  vend_id    char(10)      NOT NULL ,  prod_name  char(255)     NOT NULL ,  prod_price decimal(8,2)  NOT NULL ,  prod_desc  text          NULL    INDEX [prod_name_idx] (prod_name)  );  

删除索引

DROP INDEX[prod_name_idx] ON Product;或者ALTER TABLE Product DROP INDEX prod_name_idx;

唯一索引

它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:

创建索引

CREATE UNIQUE INDEX indexName ON mytable(username(length)) 

修改表结构

ALTER table mytable ADD UNIQUE [indexName] (username(length));

创建表的时候直接指定

CREATE TABLE mytable(  ID INT NOT NULL,   username VARCHAR(16) NOT NULL,  UNIQUE [indexName] (username(length))  );  

显示索引信息

你可以使用 SHOW INDEX 命令来列出表中的相关的索引信息。可以通过添加 \G 来格式化输出信息。
尝试以下实例:

SHOW INDEX FROM table_name; \G