网易首页 > 网易号 > 正文 申请入驻

Mysql索引工作机制与使用

0
分享至

一、为什么需要索引

当数据保存在磁盘类存储介质上时,它是作为数据块存放。这些数据块是被当作一个整体来访问的,这样可以保证操作的原子性。硬盘数据块存储结构类似于链表,都包含数据部分,以及一个指向下一个节点(或数据块)的指针,不需要连续存储。记录集只能在某个关键字段上进行排序,所以如果需要在一个无序字段上进行搜索,就要执行一个线性搜索(Linear Search)的过程,平均需要访问N/2的数据块,N是表所占据的数据块数目。

如果这个字段是一个非主键字段(也就是说,不包含唯一的访问入口),那么需要在N个数据块上搜索整个表格空间。但是对于一个有序字段,可以运用二分查找(Binary Search),这样只要访问log2 (N)的数据块。这就是为什么性能能得到本质上的提高。

二、什么是索引

索引是对记录集的多个字段进行排序的方法。在一张表中为一个字段创建一个索引,将创建另外一个数据结构,包含字段数值以及指向相关记录的指针,然后对这个索引结构进行排序,允许在该数据上进行二分法排序。

副作用是索引需要额外的磁盘空间,对于MyISAM引擎而言,这些索引是被统一保存在一张表中的,这个文件将很快到达底层文件系统所能够支持的大小限制,如果很多字段都建立了索引的话。

三、索引如何工作

首先,我们建立一个示范数据库表

字段名 数据类型 大小

id (Primary key) Unsigned INT 4 bytes

firstName Char(50) 50 bytes

lastName Char(50) 50 bytes

emailAddress Char(100) 100 bytes

注意:使用char是为了指定准确的磁盘占用大小。这个示范数据库包含500万行,而且没有索引。我们将分析一些查询语句的性能,一个是使用主键id(有序)查询,一个是使用firstName(非关键无序字段)

我们的示范数据库有r=5,000,000条记录,每条记录长度R=204字节而且使用MyISAM引擎存储(默认数据块大小为B=1024字节),这张表的块因子(blocking factor)bfr = (B/R) = 1024/204 = 5 条记录每磁盘数据块。保存这张表所需要的磁盘块为N = (r/bfr) = 5000000/5 = 1,000,000 blocks。

会是

在id字段上的线性搜索平均需要N/2 = 500,000块访问来找到一条记录假设id字段是查询关键值,不过既然id字段是有序的,可以执行一个二分查询,这样平均只需要访问log2 (1000000) = 19.93 = 20 个数据块。我们马上就看到了极大的提高。

现在firstName字段既不是有序的,无法执行二分搜索,数值也不具有唯一性,所以对这张表的查找必须到最后一个记录即全表扫描N = 1,000,000个数据块访问。这就是索引用来改进的地方。

假如索引记录只包含一个索引列以及一个指向原记录数据的指针,那么它显而易见会比原记录(多列)要小。所以索引本身所需要的磁盘块要更少,扫描数目也少。firstName索引表结构如下:

Field name Data type Size on disk

firstName Char(50) 50 bytes

(record pointer) Special 4 bytes

注意: MySQL里的指针按表大小的不同分别可能是 2, 3, 4 或 5 个字节。

例子2

假设我们的数据库有r = 5,000,000 条记录,建立了一个长R = 54字节的索引,并且使用默认磁盘块大小为1,024字节。那么该索引的块因子为bfr = (B/R) = 1024/54 = 18 条记录每磁盘块。容纳这个索引表总共需要的磁盘块为N = (r/bfr) = 5000000/18 = 277,778 块。

现在使用FirstName字段来进行搜索就可以利用索引来提高性能。这允许使用一个二分查找,平均log2 (277778) = 18.08 -> 19次数据块访问。找到实际记录的地址,这需要进一步,这样总数达到19 + 1 = 20次数据块访问,这和非索引表的数据块访问次数有天壤之别

的块读取

四、什么时候使用索引

鉴于创建索引需要额外的磁盘空间(上面的例子需要额外的277778个磁盘块),以及太多的索引会导致文件系统大小限制所产生的问题,所以对哪些字段建立索引,什么情况下使用索引,需要审慎考虑。

由于索引只是用来加速数据查询,那么显然对只是用来输出的字段建立索引会浪费磁盘空间以及发生插入、删除操作时的处理时间,所以这种情况下应该尽量避免。此外鉴于二分搜索的特性,数据的基数或独立性是很重要的。在基数为2的字段上建立索引,将把数据分割一半,而基数为1000则将返回大约1000条记录。低基数的二分查找效率将降低为一个线性排序,而且查询优化器可能会在基数小于记录数某个比例时(如30%)的情况下将避免使用索引而直接查询原表,所以这种情况下的索引浪费了空间

文章转载链接:http://www.atguigu.com/jsfx/2048.html

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
再次爆料!美国媒体:3名中国游泳选手呈阳性,2人是东京奥运冠军

再次爆料!美国媒体:3名中国游泳选手呈阳性,2人是东京奥运冠军

体坛知识分子
2024-06-16 06:20:02
主板IPO丨浙能燃气等待注册生效,毛利率低于同行,现金流充裕募资必要性存疑

主板IPO丨浙能燃气等待注册生效,毛利率低于同行,现金流充裕募资必要性存疑

时代商学院
2024-06-16 17:03:17
奚梦瑶携儿女为何超欣庆生,姑嫂合照好开心,5岁何广燊长高许多

奚梦瑶携儿女为何超欣庆生,姑嫂合照好开心,5岁何广燊长高许多

笑猫说说
2024-06-15 04:45:19
牵涉“女首富”案,又一位越共中央高层受处分

牵涉“女首富”案,又一位越共中央高层受处分

中国新闻周刊
2024-06-16 15:09:59
高温下的印度光伏,是教科书一般的“我之蜜糖,彼之砒霜”!

高温下的印度光伏,是教科书一般的“我之蜜糖,彼之砒霜”!

醉井观商
2024-06-16 17:44:55
库里惨遭背叛!汤普森签约4年1.35亿,勇士地震!

库里惨遭背叛!汤普森签约4年1.35亿,勇士地震!

元爸体育
2024-06-16 21:34:52
42岁凯特王妃灿烂笑容重现!瘦成“纸片人”,比9岁夏洛特还要薄

42岁凯特王妃灿烂笑容重现!瘦成“纸片人”,比9岁夏洛特还要薄

译言
2024-06-15 18:51:40
妻子出轨坚持要离婚,被丈夫拿运动鞋抽打伤重身亡,丈夫获刑10年

妻子出轨坚持要离婚,被丈夫拿运动鞋抽打伤重身亡,丈夫获刑10年

潇湘晨报
2024-06-16 19:10:07
男子离婚前贷款45万并转给母亲35万:一审判前妻承担5万债务本息,终审改判

男子离婚前贷款45万并转给母亲35万:一审判前妻承担5万债务本息,终审改判

红星新闻
2024-06-16 19:05:11
越闹越大!南方医科大无法自圆其说,举报学生身份被扒出

越闹越大!南方医科大无法自圆其说,举报学生身份被扒出

看晓天下事
2024-06-16 13:10:53
人民日报:忙起来,就没那么多迷茫了,只要不懈怠,日子就有奔头

人民日报:忙起来,就没那么多迷茫了,只要不懈怠,日子就有奔头

十三级台阶
2024-06-15 19:29:05
动物交配六亲不认,若雄性遇上自己母亲呢?马不欺母是真的吗?

动物交配六亲不认,若雄性遇上自己母亲呢?马不欺母是真的吗?

答案在这儿
2024-06-16 00:02:21
姜萍实力遭质疑,参赛者透露初赛是开卷,村里承诺给姜父安排工作

姜萍实力遭质疑,参赛者透露初赛是开卷,村里承诺给姜父安排工作

六毛朵朵
2024-06-16 12:21:05
瑞士和平峰会100位与会者高喊“荣耀属于乌克兰”,共识再次凝聚

瑞士和平峰会100位与会者高喊“荣耀属于乌克兰”,共识再次凝聚

山河路口
2024-06-16 15:42:55
医大教师因抢救患儿迟到被罚后续:举报者身份被扒,校方二次回应

医大教师因抢救患儿迟到被罚后续:举报者身份被扒,校方二次回应

洛洛女巫
2024-06-16 13:41:45
荷兰的神!31岁“窝窝哥”世界杯绝平+欧洲杯绝杀,队友簇拥致敬

荷兰的神!31岁“窝窝哥”世界杯绝平+欧洲杯绝杀,队友簇拥致敬

我爱英超
2024-06-16 23:23:09
历史会记住这一天

历史会记住这一天

西楼饮月
2024-06-16 20:49:06
网友称医院也能看到露大腿的美女护士,大V无语:大家别幻想了!

网友称医院也能看到露大腿的美女护士,大V无语:大家别幻想了!

可达鸭面面观
2024-06-16 20:29:28
瑞士的乌克兰和平峰会上:拒绝签署联合声明的国家被点名

瑞士的乌克兰和平峰会上:拒绝签署联合声明的国家被点名

探索星空
2024-06-16 22:29:49
甘肃天水烟草局“夜袭”造假,监控曝光“起早贪黑”式伪造证据

甘肃天水烟草局“夜袭”造假,监控曝光“起早贪黑”式伪造证据

新动察
2024-06-16 11:36:42
2024-06-17 01:54:44
IT爱好者小尚
IT爱好者小尚
分享IT教育类信息
630文章数 55关注度
往期回顾 全部

科技要闻

iPhone 16会杀死大模型APP吗?

头条要闻

南方医院回应教师因救人迟到:教学差错是最轻档处理

头条要闻

南方医院回应教师因救人迟到:教学差错是最轻档处理

体育要闻

没人永远年轻 但青春如此无敌还是离谱了些

娱乐要闻

上影节红毯:倪妮好松弛,娜扎吸睛

财经要闻

打断妻子多根肋骨 上市公司创始人被公诉

汽车要闻

售17.68万-21.68万元 极狐阿尔法S5正式上市

态度原创

艺术
手机
本地
房产
公开课

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

手机要闻

荣耀X60i入网:配置全面升级,能否满足你的所有期待?

本地新闻

粽情一夏|海河龙舟赛,竟然成了外国人的大party!

房产要闻

万华对面!海口今年首宗超百亩宅地,重磅挂出!

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版