Mysql的索引的介绍与使用
2016-08-20 00:11
399 查看
索引设计的原则(场景):
1:最适合索引的列是出现在where条件语句的列或者是连接子句指定的列,而不应该是select关键字后面的列;
2:使用唯一索引,考虑应该是:索引的列的基数越大,索引的效果越好,如果索引建在性别列,就没有意义了,因为无论搜索哪个值,都会得到大约一半的行
3:使用短索引,如果对字符串进行索引,应该制定一个前缀长度,只要有可能,就应该这样做。例如有一个char(100)列,如果在前10个或20个字符内,多数值是唯一的,那么就不需要对整个列进行索引。这是因为使用前10个或20个字符进行索引可以节省大量索引空间
4:不要过度使用索引,每个额外的索引都要占用额外的磁盘空间,并降低写操作的性能
索引的分类:
MEMORY存储引擎的表可以选择使用BTREE索引或者HASH索引,两种不同类型的索引有其不同的使用范围
Hash索引优点:
Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。
Hash索引缺点: 那么不精确查找呢,也很明显,因为hash算法是基于等值计算的,所以对于“like”等范围查找hash索引无效,不支持;
索引相关常用的sql语句:
1:最适合索引的列是出现在where条件语句的列或者是连接子句指定的列,而不应该是select关键字后面的列;
2:使用唯一索引,考虑应该是:索引的列的基数越大,索引的效果越好,如果索引建在性别列,就没有意义了,因为无论搜索哪个值,都会得到大约一半的行
3:使用短索引,如果对字符串进行索引,应该制定一个前缀长度,只要有可能,就应该这样做。例如有一个char(100)列,如果在前10个或20个字符内,多数值是唯一的,那么就不需要对整个列进行索引。这是因为使用前10个或20个字符进行索引可以节省大量索引空间
4:不要过度使用索引,每个额外的索引都要占用额外的磁盘空间,并降低写操作的性能
索引的分类:
MEMORY存储引擎的表可以选择使用BTREE索引或者HASH索引,两种不同类型的索引有其不同的使用范围
Hash索引优点:
Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。
Hash索引缺点: 那么不精确查找呢,也很明显,因为hash算法是基于等值计算的,所以对于“like”等范围查找hash索引无效,不支持;
索引相关常用的sql语句:
CREATE INDEX indexname ON tablename(column_name):建立索引 DROP INDEX indexname ON tablename 删除索引 SHOW INDEX FROM tablename:查找表中的索引的属性,属性字段有:· Non_unique 如果索引不能包括重复词,则为0。如果可以,则为1。 Key_name 索引的名称。 Seq_in_index 索引中的列序列号,从1开始。 Column_name 列名称 Cardinality索引中唯一值的数目的估计值。通过运行ANALYZE TABLE或myisamchk -a可以更新。基数根据被存储为整数的统计数据来计数,所以即使对于小型表,该值也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机 会就越大。 Packed指示关键字如何被压缩。如果没有被压缩,则为NULLNull如果列含有NULL,则含有YES。如果没有,则该列含有NOIndex_type用过的索引方法(BTREE, FULLTEXT, HASH, RTREE)。
相关文章推荐
- MySql索引的使用方法及详细介绍
- 简单介绍MySQL中索引的使用方法
- Mysql索引介绍与使用
- 简单介绍MySQL中索引的使用方法
- MySql索引详细介绍及正确使用方法
- MySQL日记——索引的介绍和使用
- mysql 索引的使用和查询语法
- MYSQL使用索引的方法
- MySQL查询优化技术系列讲座之使用索引
- Tomcat6.0使用jdbc连接池连接mysql--操作步骤介绍
- mysql索引的使用及语句优化
- MySQL查询优化技术系列讲座之使用索引【转】
- MySQL查询优化讲座之使用索引
- 与MYSQL 搏斗。介绍MYSQL的一些特性和使用工具。
- 部分行索引使用介绍
- 部分行索引使用介绍
- MySQL查询优化技术系列讲座之使用索引
- Mysql建立索引,找出重复纪录,删除重复的纪录,ultraedit使用小技巧
- MYSQL初学者使用指南与介绍
- MYSQL使用索引的方法