mysql索引有哪些意思
MySQL官方对索引的定义为:索引(Index)是帮忙MySQL高效猎取数据的数据构造。我们可以简便懂得为:快速查寻排好序的一种数据构造。Mysql索引主要有两种构造:B+Tree索引和Hash索引。我们平常所说的索引,假如没有特殊指明,一样都是指B树构造组织的索引(B+Tree索引)。
索引的类型
索引类型有多种,哈希、BTREE、全文索引等,其实不管什么类型,都是为了在特定业务场景下利便快速查寻数据的算法。
例如哈希索引,key-value情势,最简便的,书本的名目也是相似的。
假设有一本书中,我们已知文章标题要寻到这篇文章来阅读,假如没有名目,我们就要翻整本书去寻标题,
但是假如标题独自抽出来作为key,页码作为value就可以快速寻到内容。
明显书本开头的名目是要占用几页纸的,创立索引也是要耗损资源的。
BTREE索引是另一种算法,不一样业务场景使用对应索引会更有效力。
就比如新华字典的名目跟一般的书本名目不一样,新华字典可以通过拼音或者偏旁部首的查询办法去快速查到字在第几页,这也是一种“索引”
还有全文索引等,这里不在描写,例如solr、elasticsearch使用的算法可以去研讨一下
索引概念
索引本质:索引就是数据库表中字段值的复制,该字段称为索引的关键字
索引也是一张表,该表留存了主键与索引字段,并指向实体表的记载
索引往往通过复杂的数据构造(双向链表、B+树/B树、hash)实现
MyISAM储备引擎的表支撑主索引,InnoDB储备引擎的表支撑聚簇索引(主索引)与非聚簇索引(辅助索引)索引优化使用
索引的优缺陷
@长处:
MySQL的索引的创立关于MySQL的高效运转非常重要,可以大大提高MySQL的检索速度。
在分组和排序字句停止数据检索,可以减少查询时间中 分组 和 排序时所耗损的时间(数据库的记载会从新排序)
在表连接的连接前提 可以加快表与表直接的相连
@缺陷:
但过多使用索引会造成索引滥用,提高了检索速度,缺落低了表的更新速度
如:对表停止增删改查操纵时,MySQL不仅要留存数据,还要留存索引文件,创立索引会占用磁盘空间的索引文件
在创立索引和保护索引 会消耗时间,随着数据量的增添而增添
以上就是mysql索引是啥意思的具体内容,更多请关注百分百源码网其它相关文章!