MySQL索引
2016-11-12 22:23
113 查看
MySQL中,所有的数据类型都可以建立索引,包括普通索引,唯一性索引,全文索引,单列索引,多列索引和空间索引等。
优点:提高查询,联合查询,分级和排序的时间
缺点:索引占空间,维护(创建,更新,维护)索引时需要耗费时间
不加任何限制条件
2、唯一性索引
使用 UNIQUE 参数
3、全文索引
使用 FULLTEXT 参数,只能创建在 CHAR,VARCHAR,TEXT 类型的字段上,只有 MyISAM 存储引擎支持全文索引。
4、单列索引
在一个字段上建立的普通索引,唯一性索引或全文索引
5、多列索引
在多个字段上建立的普通索引,唯一性索引或全文索引
6、空间索引
使用 SPATIAL 参数,只有 MyISAM 存储引擎支持空间索引,必须建立在空间数据类型上,且必须非空, 初学者很少用到。
2、为经常需要排序、分组和联合操作的字段建立索引
如 ORDER BY、GROUP BY、DISTINCT,UNION 等操作的字段,特别是排序
3、为常作为查询条件的字段建立索引
4、限制索引的数目
避免过多地浪费空间
5、尽量使用数据量少的索引
6、尽量使用前缀来索引
如指索引 TEXT 类型字段的前 N 个字符(
Oracle 中有函数索引,这个是不是相当亍left(field, n)式的函数索引?!
7、删除不再使用或者很少使用的索引
![](https://img-blog.csdn.net/20161112221322557)
![](https://img-blog.csdn.net/20161112221403192)
![](https://img-blog.csdn.net/20161112221445323)
![](https://img-blog.csdn.net/20161112221515964)
![](https://img-blog.csdn.net/20161112221713980)
![](https://img-blog.csdn.net/20161112221802525)
![](https://img-blog.csdn.net/20161112221843557)
以上是在已经存在的表上创建普通索引,创建其他类型索引参照“创建表时创建索引”,在index前加适当的参数即可。
![](https://img-blog.csdn.net/20161112221943169)
![](https://img-blog.csdn.net/20161112222024638)
![](https://img-blog.csdn.net/20161112222057060)
索引的含义和特点
BTREE 索引,HASH 索引优点:提高查询,联合查询,分级和排序的时间
缺点:索引占空间,维护(创建,更新,维护)索引时需要耗费时间
索引的分类
1、普通索引不加任何限制条件
2、唯一性索引
使用 UNIQUE 参数
3、全文索引
使用 FULLTEXT 参数,只能创建在 CHAR,VARCHAR,TEXT 类型的字段上,只有 MyISAM 存储引擎支持全文索引。
4、单列索引
在一个字段上建立的普通索引,唯一性索引或全文索引
5、多列索引
在多个字段上建立的普通索引,唯一性索引或全文索引
6、空间索引
使用 SPATIAL 参数,只有 MyISAM 存储引擎支持空间索引,必须建立在空间数据类型上,且必须非空, 初学者很少用到。
索引的设计原则
1、选择唯一性索引2、为经常需要排序、分组和联合操作的字段建立索引
如 ORDER BY、GROUP BY、DISTINCT,UNION 等操作的字段,特别是排序
3、为常作为查询条件的字段建立索引
4、限制索引的数目
避免过多地浪费空间
5、尽量使用数据量少的索引
6、尽量使用前缀来索引
如指索引 TEXT 类型字段的前 N 个字符(
Oracle 中有函数索引,这个是不是相当亍left(field, n)式的函数索引?!
7、删除不再使用或者很少使用的索引
创建索引
创建表时创建索引
创建普通索引
创建唯一性索引
使用 UNIQUE 参数创建全文索引
使用 FULLTEXT 参数,只能创建在 CHAR,VARCHAR,TEXT 类型的字段上,只有 MyISAM 存储引擎支持全文索引。创建单列索引
在一个字段上建立的普通索引,唯一性索引或全文索引创建多列索引
在多个字段上建立的普通索引,唯一性索引或全文索引创建空间索引
使用 SPATIAL 参数,只有 MyISAM 存储引擎支持空间索引,必须建立在空间数据类型上,且必须非空, 初学者很少用到。在已经存在的表上创建索引
以上是在已经存在的表上创建普通索引,创建其他类型索引参照“创建表时创建索引”,在index前加适当的参数即可。
用 ALTER TABLE 语句来创建索引
ALTER TABLE 表名 ADD[UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 (属性名[(长度)] [ASC|DESC]);删除索引
DROP
DROP INDEX 索引名 ON 表名;ALTER
相关文章推荐
- 网站之MySQL 索引分析和优化
- 详解mysql索引总结----mysql索引类型以及创建
- MySQL索引经验之浅见
- MySQL索引分析和优化
- 边学边用Mysql(2):索引的作用
- MySQL索引长度问题(转)
- mysql表锁、行锁、索引之间暧昧的关系
- 一个mysql表索引被破坏的问题及解决
- 通过实验分析索引对MySQL插入时性能的影响
- 加速动态网站 MySQL索引分析和优化
- MySQL索引经验之浅见
- MySQL索引分析和优化
- MYSQL 降序索引和减轻索引扫描
- MySql 函数索引
- MySQL查找的方式与索引的效率
- MySQL索引分析和优化
- MySQL索引分析和优化
- 在MySQL中创建索引
- Mysql建立索引,找出重复纪录,删除重复的纪录,ultraedit使用小技巧
- MySQL索引分析和优化