12.2.5 建立索引
如果一个表的数据量很大,例如有上百万行的时候,MySQL查找某条(或某些)特定的记录时会花费很长时间。可以通过在表中建立索引,来减少MySQL查找记录所使用的时间。索引最有效的使用方法是,为那些要频繁查找的字段建立索引。MySQL使用下面的语法为一个表中的某些列(即字段)建立索引。
CREATE INDEX index_name ON table_name(
column_1,
column_2,
……
)
其中INDEX是表示建立索引的关键字,index_name是索引名称。也可以在创建表的同时,为表指定索引。如下面的示例语句所示。
01 CREATE TABLE books(
02 id INT NOT NULL,
03 name VARCHAR(40)NOT NULL,
04 price DECIMAL(3,2),
05 INDEX idx(id)
06 );
【代码解析】这段SQL语句为表books的字段id指定了一个名叫idx的索引。
注意 应该将所有建立索引的字段声明为NOT NULL。
另外,MySQL支持主键这种特殊索引。在MySQL中,主键是带有名称PRIMARY的唯一键。在创建表时,可以将某列设为主键。例如下面的示例语句创建了带有主键id的表users。
CREATE TABLE users(
id INT NOT NULL PRIMARY KEY,
name VARCHAR(30),
created_time DATE
);