日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

数据库为什么不适合搜索引擎的底层存储?

發(fā)布時(shí)間:2024/2/28 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库为什么不适合搜索引擎的底层存储? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原創(chuàng)不易,轉(zhuǎn)載請(qǐng)標(biāo)明地址,或者直接附上我的博客首頁(yè)https://georgedage.blog.csdn.net/
文中有些并沒(méi)有解釋過(guò)于清楚,本篇更適合有基礎(chǔ)的同學(xué)閱讀,思考,思考,思考。

一、千億級(jí)實(shí)時(shí)搜索,要滿足的條件

》高并發(fā),要能支持百萬(wàn)級(jí)以上的并發(fā)
》實(shí)時(shí)性,響應(yīng)時(shí)間不超過(guò)3秒

那么我們考慮,這樣的情況下,使用數(shù)據(jù)庫(kù)是否可以?

Mysql / pgsql / db2 / Oracle

首先先說(shuō)出我們的結(jié)論,那就是不可以,那么為什么呢?請(qǐng)聽(tīng)我細(xì)細(xì)給你叨嘮,本篇博客通過(guò)由淺入深,并且根據(jù)一個(gè)個(gè)問(wèn)題去探討,或許你看完之后會(huì)有一點(diǎn)想法,不過(guò)如果有不妥之處,歡迎指出。

二、我們經(jīng)常瀏覽博客,新聞,商品等,存儲(chǔ)這些數(shù)據(jù)的表應(yīng)當(dāng)具有什么樣的字段呢?


提出問(wèn)題:

三、在數(shù)據(jù)庫(kù)中如何做到下面的查詢?以新聞表為例


或許對(duì)于稍微掌握點(diǎn)數(shù)據(jù)庫(kù)知識(shí)的同僚們,這些都不是問(wèn)題!
那么,請(qǐng)看問(wèn)題二!

四、當(dāng)數(shù)據(jù)量變大時(shí),這四個(gè)查詢都變慢了,該如何優(yōu)化?

我們都知道,數(shù)據(jù)庫(kù)的常用數(shù)據(jù)庫(kù)優(yōu)化方法為:
》建索引
》分區(qū)表

由此提出問(wèn)題三。

五、建索引對(duì)“查詢標(biāo)題與釣魚島有關(guān)的新聞”和“查詢與蒼老師有 關(guān)的新聞”有效果嗎?

或許對(duì)索引有點(diǎn)基本概念的同僚們,會(huì)想,沒(méi)關(guān)系呀。
嗯,好,那我問(wèn)你,為什么呢?
(⊙o⊙)…(⊙o⊙)…(⊙o⊙)…
所以我們需要理解索引的原理是什么?

六、索引的原理是什么

即: 對(duì)列值創(chuàng)建排序存儲(chǔ),數(shù)據(jù)結(jié)構(gòu)={列值、行地址}。在有序數(shù)據(jù)列表中就可以利用二分查找快速找到要查找的行的地址,再根據(jù)地址直接取行數(shù)據(jù)。

或許這樣看會(huì)有點(diǎn)抽象,這里我們可以補(bǔ)充一下自己的基礎(chǔ)知識(shí),當(dāng)然也是面試中經(jīng)常問(wèn)到的。

數(shù)組,鏈表,樹(shù),二叉樹(shù),紅黑樹(shù),mysql的b+tree

對(duì)于b+tree:

b+tree,葉子存儲(chǔ)數(shù)據(jù),節(jié)點(diǎn)關(guān)鍵值

這里補(bǔ)充一道面試題:大劍無(wú)鋒之簡(jiǎn)單說(shuō)一下聚簇索引和非聚簇索引?【面試推薦】

然后根據(jù)索引的原理進(jìn)一步思考索引!

七、索引的排序,是怎么排的?

》數(shù)值列
》時(shí)間列
》文本列

這里相信學(xué)過(guò)語(yǔ)言基礎(chǔ)的都知道,編碼字符集的應(yīng)用。
就像漢字,在計(jì)算機(jī)中的存儲(chǔ)也是二進(jìn)制,所以也就是我們常說(shuō)的字典序。詳細(xì)這里不做過(guò)多的闡述。

八、在新聞標(biāo)題列上建索引,當(dāng)我們查詢標(biāo)題=‘釣魚島’ ,數(shù)據(jù)庫(kù)會(huì)怎么去查?


但是我們查詢的是這樣一個(gè)字段呢?
或者說(shuō)數(shù)據(jù)庫(kù)中有這樣一個(gè)字段,“中國(guó)擁有釣魚島”
如果走索引,這個(gè)是會(huì)被忽視的查詢不到,所以需要全局進(jìn)行查詢。

【補(bǔ)充】這里我在網(wǎng)上看到有說(shuō)到覆蓋索引可以解決類似問(wèn)題,不過(guò)這個(gè)我并沒(méi)有進(jìn)行研究呢,后續(xù)補(bǔ)上!

九、如果要對(duì)查詢出來(lái)的結(jié)果進(jìn)行相關(guān)度排名,數(shù)據(jù)庫(kù)能否做到?


如果要對(duì)搜索的新聞字段設(shè)置不同的權(quán)重,比如新聞標(biāo)題中包含這三個(gè)關(guān)鍵字的新聞的
相關(guān)性就遠(yuǎn)高于新聞內(nèi)容中包含這三個(gè)字。數(shù)據(jù)庫(kù)能否做到?

十、最后我們得出結(jié)論

結(jié)論:
數(shù)據(jù)庫(kù)適合結(jié)構(gòu)化數(shù)據(jù)的精確查詢,而不適合半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)的模糊查詢及靈活搜索(特別是數(shù)據(jù)量大時(shí)),無(wú)法提供想要的實(shí)時(shí)性。

【補(bǔ)充】

總結(jié)

以上是生活随笔為你收集整理的数据库为什么不适合搜索引擎的底层存储?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。