Mysql——index(索引)使用
2016-09-30 16:42
429 查看
索引作用
在索引列上可以有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。而在多表连接查询时,在执行连接时加快了与其他表中的行匹配的速度。索引可以避免排序,比如对order by 的字段建立索引,因为索引使用的是BTree(数据作为叶子节点在树的最底层已经排好序,这样方便了sql的between查询),本来就是排好序列的,所以可以避免排序达到优化查询的效果。添加索引
ALTER TABLE用来创建普通索引、UNIQUE索引或PRIMARY KEY索引。ALTER TABLE table_name ADD INDEX index_name (column_list) ALTER TABLE table_name ADD UNIQUE index_name (column_list) ALTER TABLE table_name ADD PRIMARY KEY (column_list)
建立联合索引,各列之间用逗号分隔,联合索引(a,b,c)相当于(a),(a,b),(a,c)
删除索引
DROP INDEX index_name ON talbe_name ALTER TABLE table_name DROP INDEX index_name ALTER TABLE table_name DROP PRIMARY KEY
如果从表中删除了某列,则索引会受到影响。对于多列组合的索引,如果删除其中的某列,则该列也会从索引中删除。如果删除组成索引的所有列,则整个索引将被删除。
查看索引
show index from table_name;
Non_unique: 如果索引不能包括重复词,则为0。如果可以,则为1。
Seq_in_index: 索引中的列序列号,从1开始。比如在组合索引中的位置
Collation:列以什么方式存储在索引中。在MySQL中,有值‘A’(升序)或NULL(无分类)。
Cardinality:索引中唯一值的数目的估计值。通过运行ANALYZE TABLE或myisamchk -a可以更新。基数根据被存储为整数的统计数据来计数,所以即使对于小型表,该值也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机会就越大。
Sub_part:如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。
Packed:指示关键字如何被压缩。如果没有被压缩,则为NULL。
Null:如果列含有NULL,则含有YES。如果没有,则该列含有NO。
Index_type:用过的索引方法(BTREE, FULLTEXT, HASH, RTREE)。
[参考资料]
MySQL索引的创建、删除和查看
相关文章推荐
- [MySQL 工具] pt-index-usage使用 --> 对查询中的索引进行分析
- mysql中index的如何使用,判断什么时候加索引
- mysql中index的如何使用,判断什么时候加索引(强烈推荐)
- mysql force Index 查询强制使用索引
- 在MYSQL中使用全文索引(FULLTEXTindex)MYSQL的一个很有用的特性是使用全文索引
- MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 区别与使用场合
- mysql索引 index的类型和使用
- 学习笔记--mysql索引(一) 索引使用,index,key,primary key, unique
- mysql 查看索引使用情况
- MySQL查询优化技术系列讲座之使用索引
- MYSQL索引的使用(使用UNION ALL代替OR)
- 使用索引(Index)和簇(Cluster)
- MySQL查询优化技术系列讲座之使用索引(二)
- mysql快速分页-索引性能分析-索引-order by-limit-offset-covering-index
- c:forEach status.index 行索引的使用[转载!]
- 索引组织的表(Index-Organized Table, IOT)的使用
- MySQL优化之索引的使用
- 关于使用索引(Index)的一些注意点
- Mysql innodb引擎和myisam引擎 使用索引区别
- MYSQL索引的使用