機(jī)器學(xué)習(xí)能革了數(shù)據(jù)庫(kù)索引的命嗎?

2021-01-29    分類: 網(wǎng)站建設(shè)

關(guān)系數(shù)據(jù)庫(kù)帝國(guó)已經(jīng)獨(dú)孤求敗幾十年了!

(圖2:B+樹中節(jié)點(diǎn)也保存在磁盤塊中)

最后一層為有序的數(shù)據(jù)頁(yè),每個(gè)頁(yè)包含指向下一個(gè)數(shù)據(jù)頁(yè)的頁(yè)號(hào)(也就是地址),這里假設(shè)一條記錄占據(jù)一個(gè)數(shù)據(jù)頁(yè),那么第一條記錄在1號(hào)數(shù)據(jù)頁(yè),第二條記錄在2號(hào)數(shù)據(jù)頁(yè),依次類推。

這樣以來(lái),如果用戶想獲取ID = 4的記錄,數(shù)據(jù)庫(kù)只需要讀取三次磁盤就可以找到記錄所在的數(shù)據(jù)的頁(yè)號(hào)(page)為4。

現(xiàn)在的對(duì)應(yīng)關(guān)系不是那么簡(jiǎn)單了。

機(jī)器學(xué)習(xí)大使不僅不慢不緊不慢地回答道:“線性模型只是我們大家族中最簡(jiǎn)單的地模型罷了,不管你一個(gè)數(shù)據(jù)頁(yè)能存儲(chǔ)幾條記錄, 只要給出(key,page)對(duì)應(yīng)的數(shù)據(jù)集合,我們都可以訓(xùn)練神經(jīng)網(wǎng)絡(luò),找到滿足他們之間關(guān)系的一個(gè)函數(shù) page = f(key)!通過(guò)這個(gè)函數(shù),只要你給出key的值,立刻就能得出page! ”

B+樹有點(diǎn)明白了,這機(jī)器學(xué)習(xí)就是為了找到一個(gè)key和頁(yè)面之間的關(guān)系啊,以后訪問(wèn)起來(lái)就方便了,他背上開始冒汗了。

機(jī)器學(xué)習(xí)大使窮追不舍,亮出了大殺招:“使用B+樹, 存儲(chǔ)開銷是O(n/m)(m為樹的出度),查詢開銷是O(log(n)), 而使用神經(jīng)網(wǎng)絡(luò),查詢開銷是O(1) !”

O(1) !

聽到這句話, 全場(chǎng)一片嘩然,所有人都知道這意味著什么,這就是革命呀,革B+樹的命呀!

大臣們開始竊竊私語(yǔ):“這神經(jīng)網(wǎng)絡(luò)很厲害啊!”

“是啊!神經(jīng)網(wǎng)絡(luò)最擅長(zhǎng)干這個(gè)事情了!從一堆數(shù)據(jù)中找到關(guān)聯(lián)關(guān)系。”

“聽說(shuō)神經(jīng)網(wǎng)絡(luò)在兩層的情況下就能夠擬合一切函數(shù)!”

B+樹大臣有點(diǎn)慌,語(yǔ)氣也弱了下來(lái):“你們機(jī)器學(xué)習(xí)是很牛逼,但像LR,GBDT,SVR,包括你說(shuō)的這些神經(jīng)網(wǎng)絡(luò),一些深度學(xué)習(xí)的方法,哪個(gè)不是有一定錯(cuò)誤率的,位置預(yù)測(cè)錯(cuò)誤,難道要全部掃描一遍數(shù)據(jù)不成,你們懂不懂我們索引的業(yè)務(wù)呀!”

機(jī)器學(xué)習(xí)大使早就預(yù)料到了會(huì)有這個(gè)問(wèn)題, 他一字一句鄭重道:“將機(jī)器學(xué)習(xí)賦能數(shù)據(jù)庫(kù),我們是認(rèn)真的! 傳統(tǒng)這些預(yù)測(cè)算法的應(yīng)用場(chǎng)景,都是在訓(xùn)練數(shù)據(jù)數(shù)據(jù)集里做訓(xùn)練,然后對(duì)未知的數(shù)據(jù)做預(yù)測(cè)。但索引這個(gè)場(chǎng)景,嘿嘿,它是一個(gè)封閉場(chǎng)景,沒有新的數(shù)據(jù),只需要對(duì)數(shù)據(jù)庫(kù)中存在的數(shù)據(jù)做預(yù)測(cè)即可,這種場(chǎng)景下,就像我剛才提到的神經(jīng)網(wǎng)絡(luò)完全可以勝任,直接就在當(dāng)前數(shù)據(jù)上,訓(xùn)練到做到百分百的正確率即可?!?/p>

全場(chǎng)再次嘩然,眾位大臣齊刷刷地看著國(guó)王,似乎等待著最終的宣判。

絕地反擊

B+樹大臣頓時(shí)印堂發(fā)黑,心想幾十年的風(fēng)光就要今日終結(jié)嗎,本來(lái)隨著SSD等新型硬件的誕生我的日子就不好過(guò)了, 難道今日命喪機(jī)器學(xué)習(xí)之手?悲傷難以平復(fù),搖搖欲墜。

這個(gè)時(shí)候,CBO(基于代價(jià)的優(yōu)化器)從后面走過(guò)來(lái),一把扶住B+樹,看著這個(gè)日益蒼老的老頭,說(shuō)道:“大人莫慌,別看他和囂張,但是有巨大漏洞,看我來(lái)對(duì)付他?!?/p>

CBO大臣說(shuō)道:“你之前說(shuō)的只是查找和存儲(chǔ)性能,索引的維護(hù)(增/刪/改)代價(jià)難道不用考慮嗎,如果索引發(fā)生了變化,之前的page= f(key)這個(gè)函數(shù)還有效嗎? 是不是還得重新訓(xùn)練神經(jīng)網(wǎng)絡(luò),找到新的函數(shù) page = f1(key)? 這還是O(1)的時(shí)間復(fù)雜度嗎?我們數(shù)據(jù)庫(kù)面對(duì)的是通用場(chǎng)景,不要以為只考慮幾個(gè)case就覺得可以替代我們了!”

機(jī)器學(xué)習(xí)大使大驚,功敗垂成!自己已經(jīng)隱藏的這么深,還是被發(fā)現(xiàn)了缺陷,頓時(shí)紅了個(gè)臉:“您說(shuō)的對(duì),我們?cè)谒饕母律线€沒有很好的解決方案,但我們只是想為數(shù)據(jù)庫(kù)索引帶來(lái)一些新鮮想法,做現(xiàn)在的技術(shù)選項(xiàng)的補(bǔ)充,并沒有想著取代誰(shuí)。”

B+樹一聽,立刻滿血復(fù)活:“陛下,您看看,這是一個(gè)不成熟的方案,對(duì)于數(shù)據(jù)查找能做到O(1), 但是對(duì)于數(shù)據(jù)更新就完全不行了,居然還想替代我!我就說(shuō)這機(jī)器學(xué)習(xí)是招搖撞騙嘛!”

數(shù)據(jù)庫(kù)國(guó)王搖搖頭:“愛卿所言差矣,這個(gè)機(jī)器學(xué)習(xí)的思路還是非常新奇的,我們還是要學(xué)習(xí)一下的, 來(lái)人,給機(jī)器學(xué)習(xí)大使送上白銀千兩,好好安頓?!?/p>

后記

這篇文章的靈感來(lái)源于一篇論文《The Case for Learned Index Structures》,實(shí)際上真正要把機(jī)器學(xué)習(xí)應(yīng)用的索引上,就算考慮只讀場(chǎng)景,往往也會(huì)因?yàn)閿?shù)量太大,關(guān)系太多復(fù)雜,導(dǎo)致計(jì)算量、模型復(fù)雜度方面的問(wèn)題,所以提出這個(gè)論文的作者提到通過(guò)建立層次模型的方式解決:根節(jié)點(diǎn)的分類器將記錄劃分成n份,給下一層分類器進(jìn)行分類,這樣節(jié)點(diǎn)的預(yù)測(cè)器學(xué)習(xí)的數(shù)據(jù)少而簡(jiǎn)單,總體的時(shí)間成本也能夠保證。

本文名稱:機(jī)器學(xué)習(xí)能革了數(shù)據(jù)庫(kù)索引的命嗎?
轉(zhuǎn)載來(lái)于:http://www.bm7419.com/news13/98113.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)自適應(yīng)網(wǎng)站、靜態(tài)網(wǎng)站網(wǎng)站設(shè)計(jì)公司、虛擬主機(jī)、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)