MySQL基础之索引实战篇
2016-10-07 08:33
267 查看
在上一篇已经较为全面的讲述了索引的理论,现在进行实战操作。
在这里只列出常用索引类型的操作,关于更多的索引分类参看MySQL基础之索引理论篇
上面语句是在year_pub字段上创建索引的
通过
通过
如果该字段上已经存在了索引,可以先删除掉,然后再创建。
如:
如:
在这里只列出常用索引类型的操作,关于更多的索引分类参看MySQL基础之索引理论篇
索引的创建
创建表的时候创建索引
普通索引
CREATE TABLE IF NOT EXISTS book ( bookid INT NOT NULL, year_pub YEAR NOT NULL, INDEX(year_pub) );
上面语句是在year_pub字段上创建索引的
唯一索引
唯一索引只是多加了一个UNIQUE关键字,以下语句为在id字段上添加唯一索引并命名为UniqIdxCREATE TABLE IF NOT EXISTS perso ( id INT NOT NULL, name CHAR(30) NOT NULL, UNIQUE INDEX UniqIdx(id) );
组合索引
CREATE TABLE IF NOT EXISTS employee ( id INT NOT NULL, name CHAR(30) NOT NULL, age INT NOT NULL, info VARCHAR(255), INDEX MultiIdx(id, name, age) );
全文索引
FULLTEXT全文索引可以用于全文搜索,但只有MyISAM存储引擎才支持,并且必须为CHAR、VARCHAR、TEXT列。CREATE TABLE person ( id INT NOT NULL, name CHAR(30) NOT NULL, age INT NOT NULL, info VARCHAR(255), FULLTEXT INDEX FullTextIdx(info) )ENGINE=MyISAM;
通过
SHOW CREATE TABLE person;可查看创建表的过程。
在已经存在的表上创建索引
主要是通过ALTER TABLE和
CREATE INDEX语句进行的,推荐使用CREATE INDEX
普通索引
在perso表的name上建立名为PoNameIdx的普通索引ALTER TABLE perso ADD INDEX PoNameIdx(name(30)); 或者 CREATE INDEX PoNameIdx ON perso(name(30));
通过
SHOW INDEX FROM perso;命令可以查看perso表当前的所有索引信息。
唯一索引
ALTER TABLE person ADD UNIQUE INDEX UniqNameIdx(name(30)); 或者 CREATE UNIQUE INDEX UniqNameIdx ON person(name(30));
组合索引
ALTER TABLE person ADD INDEX PoAgeAndInfo(age, info); 或者 CREATE INDEX PoAgeAndInfo ON person(age, info);
全文索引
在这里需要注意,全文索引只能在存储引擎为MyISAM的表上使用。ALTER TABLE person ADD FULLTEXT INDEX infoFTIdx(info); 或者 CREATE FULLTEXT INDEX infoFTIdx ON person(info);
如果该字段上已经存在了索引,可以先删除掉,然后再创建。
索引的删除
相较于索引的创建,删除索引的操作就比较简单很多了。ALTER TABLE删除索引
遵循以下基本语法格式即可:ALTER TABLE table_name DROP INDEX index_name
如:
ALTER TABLE person DROP INDEX infoFTIdx;
DROP INDEX删除索引
格式如下:DROP INDEX index_name ON table_name
如:
DROP INDEX PoNameIdx ON perso;
结语
最后索引的实战大概就写这么多吧,这些都只是基本操作。实际开发中重点应该是如何选择索引。相关文章推荐
- 数据库基础:讲解MySQL索引的概念及数据库索引的应用<转载>
- Mysql 基础之 索引
- MySQL 全文索引基础操作
- 大数据之数据库mysql优化实战之索引的使用
- MySQL中利用索引对数据进行排序的基础教程
- mysql 索引实战
- mysql基础知识理解和sql题讲解分析面试实战(四)之函数讲解和字符串的操作
- MySQL基础笔记(四) 索引
- MYSQL基础02 - 索引的操作
- mysql基础知识理解和sql题讲解分析面试实战(二)之join
- mysql 索引实战
- MySQL基础学习之索引
- MySQL基础之第7章 索引
- MySQL基础笔记(四) 索引
- mysql优化实战(explain && 索引)
- MongoDB数据库索引基础知识与实战技巧
- MySQL基础day02_表结构和索引类型-MySQL 5.6
- 实战:mysql统计指定架构的所有表的数据和索引大小情况
- Mysql 索引的基础(下)
- mysql基础知识理解和sql题讲解分析面试实战(一)之groupBy&&having