MySql干货分享之索引
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS ( ,关系数据库管理系统) 应用软件之一。
今天我们就来聊聊MySQL的索引。尽管MySQL有许多优点,但是在海量数据的情况下,性能方面的表现还是会让人捉急,这时候就轮到MySQL的索引出场了。我会以抛出问题然后解决问题的方式来进行本次分享。比如:什么是索引?索引可以做什么?为什么使用索引可以提高效率?MySQL支持哪些索引类型?什么情况下应不建或少建索引?什么是联合索引?为什么说B+比B树更适合实际应用中操作系统的文件索引和数据库索引?
一、什么是索引?
官方解释:索引(Index)是帮助MySQL高效获取数据的数据结构。
通俗理解:索引是一种特殊的文件( 数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。
二、索引可以做什么?
首先,索引不是万能的,索引可以加快数据检索操作,但会使数据修改操作变慢。每次修改数据记录,索引就必须刷新一次。为了在某种程度上弥补这一缺陷,许多 SQL 命令都有一个 项。这个选项的作用是暂时制止 MySQL 在该命令每插入一条新记录和每修改一条现有之后立刻对索引进行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。在需要把许多新记录插入某个数据表的场合, 选项的作用将非常明显。
三、为什么使用数据索引能提高效率? 四、MySQL支持哪些索引类型?
我们这里说的索引类型并不是指“主键索引”、“外键索引”这些,而是索引底层的数据结构。MySQL的索引数据结构支持以下两种:
五、什么情况下应不建或少建索引?
我们都知道什么时候应该使用索引,那么,什么时候不应该使用索引呢?我们上面说到,索引并不是万能的,所以,索引肯定也有不适用的场景。以下几个场景的时候,我们应该尽量不建或者说少建索引:
六、什么是联合索引? 七、为什么说B+比B树更适合实际应用中操作系统的文件索引和数据库索引? 八、结语
看到这里,你应该已经把MySQL的索引知识都过了个大概,希望本文能帮到你,happy 。接下来听首听首歌放松一下吧。
真的爱你 -