美文网首页
数据库索引--mysql

数据库索引--mysql

作者: de_self | 来源:发表于2020-03-24 20:11 被阅读0次

把数据库部比作一部字典,那索引就是这部字典的目录

索引的作用

  SQL.NoSQL.NewSQL,不管是何种数据库,都遵循一定的数据结构,而他们所采用的数据结构将决定他们在某种数据进行增删改查操作时的效率,从而形成该种数据库的特色。索引,如同字典的目录,指导着计算机快速的查询到我们想要的数据。而不同的索引结构,就像拼音目录,笔画目录一样能通过不同的方式指引我们不需要通过全表检索而更快的查询到数据。

主流索引的数据结构

B+树,bitMap,Hash等结构

密集索引与稀疏索引

密集索引:索引文件中所有的索引值都存在
稀疏索引:索引文件中存在一些索引值


密集索引与稀疏索引
MySQL中的索引

不同的存储引擎所采用的索引策略不同,以常见的InnoDB与Myisam存储引擎为例
InnoDB
1.必存在一个主键索引,有主键以主键为该索引
无主键以唯一字段为主键索引
无成为密集主键索引的字段,则自动生成隐藏主键(6位)作为主键索引
2.非主键索引不存行值,存储为主键索引的值,所以在非主键索引进行检索市,先检索出主键索引,再通过主键索引获得该行值
Myisam
所有索引均为稀疏索引,且索引均直接连接行值


image.png
MySQL存储引擎简介

mysql的存储引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDBCluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,
最常使用的2种存储引擎为InnoDB,Myisam
1.Myisam是Mysql的默认存储引擎,当create创建新表时,未指定新表的存储引擎时,默认使用Myisam。每个MyISAM在磁盘上存储成三个文件。文件名都和表名相同,扩展名分别是.frm(存储表定义)、.MYD(MYData,存储数据)、.MYI(MYIndex,存储索引)。数据文件和索引文件可以放置在不同的目录,平均分布io,获得更快的速度。
2.InnoDB存储引擎具有两个存储文件一个表结构文件一个数据文件,提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比Myisam的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。

相关文章

  • MySQL索引简述--BTree索引

    MySQL数据库有如下几种常见的索引类型: BTree索引 哈希索引 全文索引 索引的本质 MySQL官方对索引的...

  • MySQL 索引和 SQL 调优

    MySQL索引 MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引...

  • MYSQL记录

    简单描述MySQL中,索引、主键、唯一索引、联合索引的区别,对数据库的性能有什么影响? MySQL索引的基础和类型...

  • PHP面试之数据库—创建高性能索引

    真题 简单描述MySQL中,索引、主键、唯一索引、联合索引的区别,对数据库的性能有什么影响? MySQL索引的基础...

  • face17 mysql创建高性能索引

    mysql创建高性能索引 简单描述 mysql中 索引 主键 唯一索引 联合索引的区别对数据库性能有什么影响 创建...

  • 干货:mysql索引的数据结构

    索引 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。 我们知道,数据库查...

  • 从原理到优化,深入浅出数据库索引

    MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。数据库查询是数据库的最主要...

  • mysql数据库优化

    索引优化:见mysql索引及数据库引擎mysql查询执行的过程:1、mysql客户端/服务端通信 -> 2、查...

  • mysql高级知识

    mysql高级知识系列目录 存储过程与函数 理解MySQL数据库覆盖索引 为什么 MySQL 索引要使用 B+树而...

  • MySQL书目

    MySQL数据库索引设计与优化 MySQL技术内幕 MySQL排错指南 高性能MySQL MySQL DBA修炼之道

网友评论

      本文标题:数据库索引--mysql

      本文链接:https://www.haomeiwen.com/subject/lmeayhtx.html