有了这几张图,再也不怕面试被问MySQL!

想象一下,你手上有一本数学教材,但是目录被人给撕掉了,现在要你翻到讲三角函数的那一页,你该怎么办?

没有了目录,就只有两种办法,要么一页一页的翻,要么随机翻,直到找到三角函数的那一页。

对于我们数据库也是一样的道理,如果我的数据表没有“目录”,那要查询满足条件的记录行,就得全表扫描。

如果没查到,就根据数据节点所在的区间,来到下一级分叉的节点,继续这个过程。

因为分叉很多,所以这棵B树变得非常扁平化,即便是非常大的数据量,也只需要很少几次IO访问就能完成查找,这一下查询速度直接起飞了。

有很多数据库小伙伴都采用了B树来作为数据存储和索引的数据结构。

什么,你要问我是不是也用了这个?

B树虽然好,但还是有一些问题。

比如,它的查询效率不太稳定,有些在根节点或者根节点附近能找到,搜索起来就很快。如果在叶子节点上,那查询起来就很慢,有的快有的慢,这对追求性能稳定的程序员们来说,就不是太友好。

另外,它也不适合用来做范围查找,因为数据散落在不同的节点上,要查询某个范围的数据,就需要在B树上不同层级节点间进进出出,非常麻烦。

所以我在它基础之上,改进了一下,我把数据全部都放在叶子节点上,这样不管查询哪个数据,最终都要走到叶子节点,解决了查询性能不稳定的问题。其次,上面的这些节点都不存储数据了,腾出来的空间用来存储指向其他节点的指针,这样一来获得了一个额外的收获,中间节点可以分的叉更多了,整个树变得更加扁平,进一步减少IO的次数。

最后,我再把叶子结点用指针连接起来,这样就能解决范围查询的问题了,真是一颗完美的B树,哦不对,现在不能叫B树了,现在是B树的升级版,B+树!

自从用上了这样的结构,我的查询性能提升了不少,几百万级别的数据都能轻松拿捏了!除了使用B+树,在一些特定的场景下,我还可以使用哈希表和位图来做索引,查起来比B+树更快!过去这些年,虽然各种新的数据库层出不穷,但我因为简单好用,稳定可靠,而且还支持事务,所以我依然是许多互联网公司首选的数据库。进入云计算时代以后,很多软硬件都上云了,我也不甘落后,开始在云端为大家服务。👆点击视频快速了解“我”吧~

有了云,你只需要一个地址和账户密码就能使用我了,不用再自己去安装,更省去了很多运维的麻烦,全部由云服务厂商为你解决,简直不要太方便。越来越多的公司和个人开发者都开始在云端来使用我了,其中不得不提的就是阿里云。

阿里云瑶池数据库旗下的云数据库RDS把我的代码拉了一个分支,对我进行了深度改造,经过双十一高并发、海量数据的考验,把我的性能又提升了一大截。不仅如此,云端版本的我,使用了阿里云自研的内核加速技术,性能大幅提升,并且还使用了阿里云特有的云盘存储,比起本地蜗牛般的机械硬盘简直不要太爽了。有了云盘的加持,不仅IO速度变快了,数据的安全性也更高了,阿里云提供了全方位的安全防护措施,你把数据存在阿里云上,就把心放到肚子里吧。

哦对了,要告诉你一个好消息,最近,阿里云正在搞活动,推出了一个99计划,助力中小企业无忧上云,一年只需要99元就能在云端用上我。

原来需要一千多块钱一年的云数据库RDS MySQL,现在只需要99元了,无论你是企业开发部署,还是个人开发者,亦或是学习数据库的初学者,这都是一次绝佳的机会。阿里云RDS MySQL,作为年轻人的第一台数据库,大品牌值得信赖,极致的性价比,是开发者数据托管的最优选择!

只需要99元,就能拥有我了,赶快来薅一把羊毛,点击文末「阅读原文」一键直达。我在阿里云上等你来哦~

/ END /

点击 阅读原文 查看 云数据库RDS 更多内容