Mysql基础知识:索引
2017-02-12 19:45
405 查看
Mysql 索引
1. 索引的概念
索引是创建在表上的,对数据库表中的一列或多列的值进行排序的一种结构。
索引有2种存储类型:B型树索引 和 哈希索引。InnoDB和MyISAM存储引擎支持B型树索引,MEMORY存储引擎支持哈希索引。
优点:提高检索数据的速度。对于有依赖关系的子表和父表之间的联合,可提高查询速度;使用分组和排序子句进行数据查询,可显著节省查询时间。
缺点:创建和维护需要耗费时间,耗费的时间随着数据量的增加而增加;索引需要占用物理空间;增加、修改和删除索引时,需要动态的维护索引,会造成数据维护速度降低。
2.索引的分类
1)普通索引:
不加任何限制条件的索引。
2)唯一性索引:
UNIQUE参数设置唯一性索引。
3)全文索引:
使用FULLTEXT参数设置为全文索引。(全文索引只能创建在CHAR、VARCHAR或TEXT类型字段上)
4)单列索引:
为表的单个字段创建索引。
5)多列索引:
为表的多个字段创建一个索引。
6)空间索引:
使用SPATIAL参数设置。
3. 索引的设计原则
1)选择唯一性索引;
2)为经常需要排序、分组和联合操作的字段建立索引;
3)为常作为查询条件的字段建立索引;
4)限制索引的数目;
5)尽量使用数据量少的索引;
6)尽量使用前缀索引;
7)删除不再使用或很少使用的索引。
4. 创建索引
1)创建表的时候创建索引
INDEX和KEY表示指定字段为索引,两者作用相同选其一即可。
ASC/DESC表示升序排列和降序排列。
2)为已经存在的表创建索引
3)用ALTER TABLE语句创建索引
5. 删除索引
1. 索引的概念
索引是创建在表上的,对数据库表中的一列或多列的值进行排序的一种结构。
索引有2种存储类型:B型树索引 和 哈希索引。InnoDB和MyISAM存储引擎支持B型树索引,MEMORY存储引擎支持哈希索引。
优点:提高检索数据的速度。对于有依赖关系的子表和父表之间的联合,可提高查询速度;使用分组和排序子句进行数据查询,可显著节省查询时间。
缺点:创建和维护需要耗费时间,耗费的时间随着数据量的增加而增加;索引需要占用物理空间;增加、修改和删除索引时,需要动态的维护索引,会造成数据维护速度降低。
2.索引的分类
1)普通索引:
不加任何限制条件的索引。
2)唯一性索引:
UNIQUE参数设置唯一性索引。
3)全文索引:
使用FULLTEXT参数设置为全文索引。(全文索引只能创建在CHAR、VARCHAR或TEXT类型字段上)
4)单列索引:
为表的单个字段创建索引。
5)多列索引:
为表的多个字段创建一个索引。
6)空间索引:
使用SPATIAL参数设置。
3. 索引的设计原则
1)选择唯一性索引;
2)为经常需要排序、分组和联合操作的字段建立索引;
3)为常作为查询条件的字段建立索引;
4)限制索引的数目;
5)尽量使用数据量少的索引;
6)尽量使用前缀索引;
7)删除不再使用或很少使用的索引。
4. 创建索引
1)创建表的时候创建索引
CREATE TABLE 表名 ( 属性名 数据类型 约束条件, 属性名 数据类型 约束条件, ... UNIQUE | FULLTEXT | SPATIAL INDEX | KEY 别名 ( 属性名1 (长度) ASC | DESC) );
INDEX和KEY表示指定字段为索引,两者作用相同选其一即可。
ASC/DESC表示升序排列和降序排列。
2)为已经存在的表创建索引
CREATE UNIQUE | FULLTEXT | SPATIAL INDEX 索引名 ON 表名 ( 属性名 (长度) ASC | DESC );
3)用ALTER TABLE语句创建索引
ALTER TABLE 表名 ADD UNIQUE | FULLTEXT | SPATIAL INDEX 索引名 ( 属性名 (长度) ASC | DESC );
5. 删除索引
DROP INDEX 索引名 ON 表名;
相关文章推荐
- mysql 索引,死锁 配置 等 基础理论知识整理
- MySQL中索引的基础知识
- 来了解一下Mysql索引的相关知识:基础概念、性能影响、索引类型、创建原则、注意事项
- SQL Server 索引基础知识(10)----Join 时的三种算法简介
- SQL Server 索引基础知识(2)----聚集索引,非聚集索引
- 索引基础知识
- SQL Server 索引基础知识(2)----聚集索引,非聚集索引
- MySql基础知识(经典版)
- SQL Server 索引基础知识(8)--- 数据基本格式补充
- SQL Server 索引基础知识(9)----Indexing for OR
- SQL Server 索引基础知识(10)----Joins 时的三种算法简介
- SQL Server 索引基础知识(4)----主键与聚集索引
- 数据库基础知识整合(一)——索引
- SQL Server 索引基础知识(5)----理解newid()和newsequentialid()
- SQL Server 索引基础知识(6)----索引的代价,使用场景
- SQL Server 索引基础知识(1)--- 记录数据的基本格式
- 深入理解mysql之BDB系列(1)---BDB相关基础知识
- 基础知识:MySQL数据类型及列类型 (2)
- SQL Server 索引基础知识(3)----测试中一些常看的指标和清除缓存的方法
- SQL Server 索引基础知识(3)----测试中一些常看的指标和清除缓存的方法