机器学习能革了数据库索引的命吗?

2021-01-29    分类: 网站建设

关系数据库帝国已经独孤求败几十年了!

(图2:B+树中节点也保存在磁盘块中)

最后一层为有序的数据页,每个页包含指向下一个数据页的页号(也就是地址),这里假设一条记录占据一个数据页,那么第一条记录在1号数据页,第二条记录在2号数据页,依次类推。

这样以来,如果用户想获取ID = 4的记录,数据库只需要读取三次磁盘就可以找到记录所在的数据的页号(page)为4。

现在的对应关系不是那么简单了。

机器学习大使不仅不慢不紧不慢地回答道:“线性模型只是我们大家族中最简单的地模型罢了,不管你一个数据页能存储几条记录, 只要给出(key,page)对应的数据集合,我们都可以训练神经网络,找到满足他们之间关系的一个函数 page = f(key)!通过这个函数,只要你给出key的值,立刻就能得出page! ”

B+树有点明白了,这机器学习就是为了找到一个key和页面之间的关系啊,以后访问起来就方便了,他背上开始冒汗了。

机器学习大使穷追不舍,亮出了大杀招:“使用B+树, 存储开销是O(n/m)(m为树的出度),查询开销是O(log(n)), 而使用神经网络,查询开销是O(1) !”

O(1) !

听到这句话, 全场一片哗然,所有人都知道这意味着什么,这就是革命呀,革B+树的命呀!

大臣们开始窃窃私语:“这神经网络很厉害啊!”

“是啊!神经网络最擅长干这个事情了!从一堆数据中找到关联关系。”

“听说神经网络在两层的情况下就能够拟合一切函数!”

B+树大臣有点慌,语气也弱了下来:“你们机器学习是很牛逼,但像LR,GBDT,SVR,包括你说的这些神经网络,一些深度学习的方法,哪个不是有一定错误率的,位置预测错误,难道要全部扫描一遍数据不成,你们懂不懂我们索引的业务呀!”

机器学习大使早就预料到了会有这个问题, 他一字一句郑重道:“将机器学习赋能数据库,我们是认真的! 传统这些预测算法的应用场景,都是在训练数据数据集里做训练,然后对未知的数据做预测。但索引这个场景,嘿嘿,它是一个封闭场景,没有新的数据,只需要对数据库中存在的数据做预测即可,这种场景下,就像我刚才提到的神经网络完全可以胜任,直接就在当前数据上,训练到做到百分百的正确率即可。”

全场再次哗然,众位大臣齐刷刷地看着国王,似乎等待着最终的宣判。

绝地反击

B+树大臣顿时印堂发黑,心想几十年的风光就要今日终结吗,本来随着SSD等新型硬件的诞生我的日子就不好过了, 难道今日命丧机器学习之手?悲伤难以平复,摇摇欲坠。

这个时候,CBO(基于代价的优化器)从后面走过来,一把扶住B+树,看着这个日益苍老的老头,说道:“大人莫慌,别看他和嚣张,但是有巨大漏洞,看我来对付他。”

CBO大臣说道:“你之前说的只是查找和存储性能,索引的维护(增/删/改)代价难道不用考虑吗,如果索引发生了变化,之前的page= f(key)这个函数还有效吗? 是不是还得重新训练神经网络,找到新的函数 page = f1(key)? 这还是O(1)的时间复杂度吗?我们数据库面对的是通用场景,不要以为只考虑几个case就觉得可以替代我们了!”

机器学习大使大惊,功败垂成!自己已经隐藏的这么深,还是被发现了缺陷,顿时红了个脸:“您说的对,我们在索引的更新上还没有很好的解决方案,但我们只是想为数据库索引带来一些新鲜想法,做现在的技术选项的补充,并没有想着取代谁。”

B+树一听,立刻满血复活:“陛下,您看看,这是一个不成熟的方案,对于数据查找能做到O(1), 但是对于数据更新就完全不行了,居然还想替代我!我就说这机器学习是招摇撞骗嘛!”

数据库国王摇摇头:“爱卿所言差矣,这个机器学习的思路还是非常新奇的,我们还是要学习一下的, 来人,给机器学习大使送上白银千两,好好安顿。”

后记

这篇文章的灵感来源于一篇论文《The Case for Learned Index Structures》,实际上真正要把机器学习应用的索引上,就算考虑只读场景,往往也会因为数量太大,关系太多复杂,导致计算量、模型复杂度方面的问题,所以提出这个论文的作者提到通过建立层次模型的方式解决:根节点的分类器将记录划分成n份,给下一层分类器进行分类,这样节点的预测器学习的数据少而简单,总体的时间成本也能够保证。

文章名称:机器学习能革了数据库索引的命吗?
标题路径:https://www.cdcxhl.com/news/98113.html

成都网站建设公司_创新互联,为您提供动态网站品牌网站建设做网站营销型网站建设品牌网站设计关键词优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

小程序开发