MySQL索引
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL索引,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1252字,纯文字阅读大概需要2分钟。
内容图文
![MySQL索引](/upload/InfoBanner/zyjiaocheng/1194/6f5ce5abb7714264ae90c8523016e9d1.jpg)
一、索引简介
索引是帮助MySQL高效获取数据的数据结构。
数据库索引类似于一本书的目录,能加快数据库的查询速度。一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往是存储在磁盘上的文件中的(可能存储在单独的索引文件中,也可能和数据一起存储在数据文件中)。
我们通常所说的索引,没有特别说明,都是指的B树(多路搜索树,并不一定是二叉的)结构组织的索引。
其中聚集索引、覆盖索引、组合索引、前缀索引、唯一索引默认都是使用B+树索引,统称索引。
下面对索引的优势和劣势进行分析说明:
优势:
① 类似于书的目录,可以提高数据检索的效率,降低数据库的IO成本。
② 通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗。
-
被索引的列会自动进行排序,包括单列索引和组合索引,只是组合索引的排序要复杂一些。
-
按照索引列的顺序进行排序,对应order by语句来说,效率就会提高很多。
劣势:
① 索引会占据磁盘空间
② 索引会提高查询效率,但是会降低更新表的效率。比如每次对表进行增删改操作,MySQL不仅要保存数据,还有保存或者更新对应的索引文件。
二、索引分类
单列索引
-
普通索引:MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值,纯粹为了查询数据更快一点。
-
唯一索引:索引列中的值必须是唯一的,但是允许为空值。
-
主键索引:是一种特殊的唯一索引,不允许有空值。
组合索引
在表中的多个字段组合上创建的索引只有在查询条件中使用了这些字段的左边字段时,索引才会被使用,遵循最左前缀原则(最左匹配原则)。一般情况下,建议使用组合索引代替单列索引(主键索引除外,具体原因后面知识点讲解)。
全文索引
只有在MyISAM引擎上才能使用,只能在CHAR,VARCHAR,TEXT类型字段上使用全文索引。
空间索引
不做介绍,一般使用不到。
三、索引使用
创建索引
- 单列索引之普通索引
CREATE INDEX index_name ON table(column(length))
ALTER TABLE table_name ADD INDEX index_name ON (column(length))
- 单列索引之唯一索引
CREATE UNIQUE INDEX index_name ON table(column(length))
- 单列索引之全文索引
CREATE FULLTEXT INDEX index_name ON table(column(length))
- 组合索引
ALTER TABLE article ADD INDEX index_titme_time (title(50),time(10))
删除索引
DROP INDEX index_name ON table
查看索引
SHOW INDEX FROM table_name
原文:https://www.cnblogs.com/liuyi6/p/10453538.html
内容总结
以上是互联网集市为您收集整理的MySQL索引全部内容,希望文章能够帮你解决MySQL索引所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。