日期:2014-05-16 浏览次数:20904 次
在数据库表中,使用索引可以大大提高查询速度。 假如我们创建了一个 testIndex 表:
CREATE TABLE testIndex(i_testID INT NOT NULL,vc_Name VARCHAR(16) NOTNULL);
我们随机向里面插入了 1000 条记录,其中有一条 i_testID vc_Name 555 erquan
在查找 vc_Name="erquan" 的记录 SELECT *FROM testIndex WHERE vc_Name='erquan'; 时,如果在vc_Name 上已经建立了索引,MySql 无须任何扫描,即准确可找到该记录!相反,MySql 会扫描所有记录,即要查询 1000。以索引将查询速度提高 100 倍。
一、索引分单列索引和组合索引
单列索引:即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引:即一个索包含多个列。
二、介绍一下索引的类型
1、普通索引。
这是最基本的索引,它没有任何限制。它有以下几种创建方式:
(1)创建索引:CREATE INDEX indexName ONtableName(tableColumns(length));如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是 BLOB 和 TEXT 类型,必须指定 length,下同。
(2)修改表结构:ALTER tableName ADD INDEX[indexName] ON (tableColumns(length))
(3)创建表的时候直接指定:CREATE TABLE tableName ( [...],INDEX [indexName] (tableColumns(length)) ;
2、唯一索引。
它与前面的"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:
(1)创建索引:CREATE UNIQUE INDEX indexName ONtableName(tableColumns(length))
(2)修改表结构:ALTER tableName ADD UNIQUE[indexNa