您的位置:首页 > 数据库 > MySQL

mysql创建索引

2016-06-03 00:00 330 查看
摘要: mysql几种创建索引的方式

1.普通索引

//直接创建索引
CREATE INDEX index_nameON table(column(length))
//修改表结构
ALTER TABLE `table_name` ADD INDEX index_name( `column` )
ALTER TABLE table_name ADD INDEX index_nameON (column(length))
//创建表的时候同时创建索引
CREATE TABLE `table` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
`time` int(10) NULL DEFAULT NULL ,
PRIMARY KEY (`id`),
INDEX index_name(title(length))
)

2.主键索引

//修改表结构
ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
//创建表的时候同时创建索引
CREATE TABLE `table` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
10
`time` int(10) NULL DEFAULT NULL ,
PRIMARY KEY (`id`),
)

3.唯一索引

与普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值(注意和主键不同)。如果是组合索引,则列值的组合必须唯一,创建方法和普通索引类似。

//修改表结构
ALTER TABLE `table_name` ADD UNIQUE ( `column` )
ALTER TABLE table_name ADD UNIQUE indexName ON (column(length))
//创建唯一索引
CREATE UNIQUE INDEX indexName ON table(column(length))
//创建表的时候直接指定
CREATE TABLE `table` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
`time` int(10) NULL DEFAULT NULL ,
PRIMARY KEY (`id`),
UNIQUE indexName (title(length))
);

4.全文索引

MySQL从3.23.23版开始支持全文索引和全文检索,FULLTEXT索引仅可用于 MyISAM 表;他们可以从CHAR、VARCHAR或TEXT列中作为CREATE TABLE语句的一部分被创建,或是随后使用ALTER TABLE 或CREATE INDEX被添加。

//修改表结构
ALTER TABLE `table_name` ADD FULLTEXT ( `column`)
ALTER TABLE `table_name` ADD FULLTEXT index_content(content)
创建表的适合添加全文索引
CREATE TABLE `table` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
`time` int(10) NULL DEFAULT NULL ,
PRIMARY KEY (`id`),
FULLTEXT (content)
09
);
//直接创建索引
CREATE FULLTEXT INDEX index_content ON `column`(content)

5.多列索引

ALTER TABLE `table_name` ADD INDEX index_name( `column1`, `column2`, `column3` )

6.删除索引

DROP
INDEX
index_name
ON
table
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: