Mysql创建索引、增加索引和删除索引

一、在创建数据表的时候创建索引

在MySQL中创建表的时候,可以直接创建索引。基本的语法格式如下:
CREATE TABLE 表名(字段名 数据类型 [完整性约束条件],
[UNIQUE | FULLTEXT | SPATIAL] INDEX | KEY
[索引名](字段名1 [(长度)] [ASC | DESC])
);

UNIQUE:可选。表示索引为唯一性索引。
FULLTEXT;可选。表示索引为全文索引。
SPATIAL:可选。表示索引为空间索引。
INDEX和KEY:用于指定字段为索引,两者选择其中之一就可以了,作用是一样的。
索引名:可选。给创建的索引取一个新名称。
字段名1:指定索引对应的字段的名称,该字段必须是前面定义好的字段。
长度:可选。指索引的长度,必须是字符串类型才可以使用。
ASC:可选。表示升序排列。
DESC:可选。表示降序排列。

MySQL创建普通索引:

CREATE TABLE index1(id INT,
    name VARCHAR(20),
    sex BOOLEAN,
    INDEX(id)
);

MySQL创建唯一性索引:

CREATE TABLE index2(id INT UNIQUE,
                    name VARCHAR(20)
);

MySQL创建全文索引:
全文索引使用FULLTEXT参数,并且只能在CHAR、VARCHAR或TEXT类型的字段上创建。

CREATE TABLE index3(id INT,
                    info VARCHAR(20),
                    FULLTEXT INDEX index3_info(info)
)ENGINE=MyISAM;

MySQL创建单列索引:
单列索引是在数据表的单个字段上创建的索引。一个表中可以创建多个单列索引。唯一性索引和普通索引等都为单列索引。

CREATE TABLE index4(id INT,
                    subject VARCHAR(30),
                    INDEX index4_st(subject(10))
);

注意:subject字段长度为30,而index4_st设置的索引长度只有10,这样做是为了提高查询速度。对于字符型的数据,可以不用查询全部信息,而只查询它前面的若干字符信息。

MySQL创建多列索引:
创建多列索引是在表的多个字段上创建一个索引。

CREATE TABLE index5(id INT,
                    name VARCHAR(20),
                    sex CHAR(4),
                    INDEX index5_ns(name,sex)
);

提示:使用多列索引时一定要特别注意,只有使用了索引中的第一个字段时才会触发索引。如果没有使用索引中的第一个字段,那么这个多列索引就不会起作用。因此,在优化查询速度时,可以考虑优化多列索引。

MySQL创建空间索引:
使用SPATIAL参数能够创建空间索引。创建空间索引时,表的存储引擎必须是MyISAM类型。而且,索引字段必须有非空约束。

CREATE TABLE index6(id INT,
                    space GEOMETRY NOT NULL,
                    SPATIAL INDEX index6_sp(space)
)ENGINE=MyISAM;

注意:space字段是非空的,而且数据类型是GEOMETRY类型。这个类型是空间数据类型。空间数据类型包括GEOMETRY、POINT、LINESTRING和POLYGON类型等。这些空间数据类型平时很少用到

二、表创建完后创建索引

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
 [USING index_type]
 ON table_name (index_col_name,...)

三、删除索引

ALTER TABLE table_name DROP INDEX index_name;

猜你喜欢

转载自blog.csdn.net/qq_22771739/article/details/86499761