索引数据库的索引好比新华字典的音序表,它是对数据库表中一列或多列的值进行排序后的一种结构,其作用是提高表中数据的查询速度。 创建索引的方式有三种,具体如下:

一、创建表的时候创建索引

CREATE TABLE 表名(字段名 数据类型[完整性约束条件],

字段名 数据类型[完整性约束条件],
 ...... 
字段名 数据类型[UNIQUE|FULLTEXT|SPATIAL]INDEX|KEY[别名](字段1[(长度)])[ASC|DESC])   
 );

 关于上述语法的相关解释具体如下:

• UNIQUE:可选参数,表示唯一性约束

• FULLTEXT:可选参数,表示全文约束

• SPATIAL:可选参数,表示空间约束

• INDEX和KEY:用来表示字段的索引,二者选一即可• 别名:可选参数,表示创建的索引的名称       

• 字段名1:指定索引对应字段的名称• 长度:可选参数,用于表示索引的长度

• ASC和DESC:可选参数,其中,ASC表示升序排列,DESC表示降序排列MySQL中的索引分为很多种,

具体如下:

1.普通索引 

建立了索引后mysql的查询方式 建立索引的数据类型是_字段

 

 

 上述语句执行后,使用SHOW CREATE TABLE语句查看表的结构,执行结果如下:

建立了索引后mysql的查询方式 建立索引的数据类型是_字段_02

 

 为了查看索引是否被使用,可以用EXPLAIN语句查看,其基本格式:EXPLAIN SELECT*FROM t1 WHERE id=1;2.唯一性索引

建立了索引后mysql的查询方式 建立索引的数据类型是_字段_03

3.全文索引

建立了索引后mysql的查询方式 建立索引的数据类型是_建立了索引后mysql的查询方式_04

 

 

 4. 单列索引

建立了索引后mysql的查询方式 建立索引的数据类型是_字段_05

 

 5.多列索引(注意的是,只有查询条件中使用这些字段中的第一个字段,多列索引才会被使用)

建立了索引后mysql的查询方式 建立索引的数据类型是_全文索引_06

 6.空间索引(注意的是,所选的字段的值不能为空值,并且表的存储引擎为MyISAM)  

建立了索引后mysql的查询方式 建立索引的数据类型是_字段_07

 

CREATE[UNIQUE|FULLTEXT|SPATIAL]INDEX 索引名 ON 表名(字段名[(长度)][ASC|DESC]);/*UNIQUE、FULLTEXT、SPATIAL都是可选参数,分别用于唯一性、全文、空间索引。INDEX用于指明字段为索引。 创建一个book表

建立了索引后mysql的查询方式 建立索引的数据类型是_建立了索引后mysql的查询方式_08

 

CREATE INDEX index_id ON book(id);执行结果如下:

建立了索引后mysql的查询方式 建立索引的数据类型是_建立了索引后mysql的查询方式_09

 

SHOW CREATE TABLE语句查看表的结构,执行结果如下:

建立了索引后mysql的查询方式 建立索引的数据类型是_全文索引_10

 

 

CREATE UNIQUE INDEX uniqueidx ON book(id);执行结果如下:

建立了索引后mysql的查询方式 建立索引的数据类型是_全文索引_11

 

 

CREATE INDEX singleidx ON book(name);执行结果如下:

建立了索引后mysql的查询方式 建立索引的数据类型是_全文索引_12

 

CREATE INDEX mulitidx ON book(name(8),sex(3));执行结果如下:

建立了索引后mysql的查询方式 建立索引的数据类型是_全文索引_13

 

5.创建全文索引首先删除表book,重建创建表book,在表中的sex字段上创建全文索引。执行结果如下:

建立了索引后mysql的查询方式 建立索引的数据类型是_可选参数_14

 

 

建立了索引后mysql的查询方式 建立索引的数据类型是_可选参数_15

 

 

CREATE FULLTEXT INDEX fulltextidx ON book(sex);执行结果如下:

建立了索引后mysql的查询方式 建立索引的数据类型是_建立了索引后mysql的查询方式_16

 

CREATE SPATIAL  INDEX  spatidx ON t7(g);

建立了索引后mysql的查询方式 建立索引的数据类型是_可选参数_17

 

 

ALTER TABLE 表名 ADD[UNIQUE|FULLTAXT|SPATIAL]INDEX 索引名(字段名[(长度)][ASC|DESC])/*UNIQUE、FULLTEXT、SPATIAL都是可选参数,分被用于唯一索引、全文索引、空间索引,ADD表示向表中添加字段*/

建立了索引后mysql的查询方式 建立索引的数据类型是_全文索引_18

 

 

ALTER TABLE book ADD INDEX index_id(id);执行结果如下:

建立了索引后mysql的查询方式 建立索引的数据类型是_全文索引_19

 

ALTER TABLE book ADD UNIQUE uniqueidx(id);执行结果如下:

建立了索引后mysql的查询方式 建立索引的数据类型是_建立了索引后mysql的查询方式_20

 

 

3.创建单列索引在表中的name字段上建立一个名称singleidx的单列索引,基本格式:ALTER TABLE book ADD INDEX singleidx(name(20));执行结果如下:

建立了索引后mysql的查询方式 建立索引的数据类型是_可选参数_21

 

 

ALTER TABLE book ADD INDEX multidx(score(4),sex(4));执行结果如下:

建立了索引后mysql的查询方式 建立索引的数据类型是_可选参数_22

 

 

ALTER TABLE book ADD FULLTEXT INDEX fulltextidx(name);执行结果如下:

建立了索引后mysql的查询方式 建立索引的数据类型是_建立了索引后mysql的查询方式_23

 

 

ALTER TABLE t8ADD SPATIAL INDEX spatidx(space);执行结果如下: 

建立了索引后mysql的查询方式 建立索引的数据类型是_全文索引_24

 

 

ALTER TABLE 表名 DROP INDEX 字段名删除表book中名称为fulltextidx的全文索引,执行结果如下:

建立了索引后mysql的查询方式 建立索引的数据类型是_可选参数_25

 

DROP INDEX 索引名 ON 表名;执行结果如下:

 

建立了索引后mysql的查询方式 建立索引的数据类型是_可选参数_26