【云圖說】第235期 DDS讀寫兩步走 帶您領(lǐng)略只讀節(jié)點(diǎn)的風(fēng)采
938
2025-04-01
目錄
前言
正文
一、索引的工作原理
二、單一索引
三、復(fù)合索引
結(jié)尾
前言
我們都知道,在關(guān)系型數(shù)據(jù)庫中,索引對于優(yōu)化數(shù)據(jù)庫的查詢操作非常重要。那么,我們不禁要問:什么是索引呢?其實(shí),索引就是一個(gè)排序的列表,在這個(gè)列表中存儲著索引的值和包含這個(gè)值的數(shù)據(jù)對應(yīng)的物理地址。索引的優(yōu)勢就是大大加快查詢速度。所以,我們的任務(wù)就是探索 mongoDB 中簡單的索引類型。
正文
一、索引的工作原理
索引的本質(zhì)就是一個(gè)排序的列表,其中記錄了索引的值和包含這個(gè)值的數(shù)據(jù)對應(yīng)的物理地址,因此,我們在查詢數(shù)據(jù)庫的時(shí)候,可以不需要全表掃描來定位某行的數(shù)據(jù),而是通過索引找到對應(yīng)的物理地址,再通過物理地址來訪問對應(yīng)的數(shù)據(jù)。
索引的優(yōu)勢是加快了數(shù)據(jù)的檢索、排序、分組的速度,減少磁盤I/O,但是索引也有缺點(diǎn),并不是越多越好,因?yàn)樗饕旧硪彩菙?shù)據(jù)表,需要占用存儲空間。另外,索引的變化也需要對數(shù)據(jù)庫進(jìn)行維護(hù),比如對索引列的值進(jìn)行增改刪操作時(shí),數(shù)據(jù)庫也需要更新索引表,這會(huì)增加數(shù)據(jù)庫的壓力。
二、單一索引
單一索引就是單個(gè)字段的索引列,其實(shí),在 mongoDB 數(shù)據(jù)庫中,所有的表都是默認(rèn)單一索引的,只是索引的字段是 _id。
我們在設(shè)置單一索引時(shí),需要把經(jīng)常訪問,就是經(jīng)常作為過濾條件的字段設(shè)置為索引,比如,在數(shù)據(jù)庫表中,我們非常關(guān)心最近的一些數(shù)據(jù),那么可以給時(shí)間戳字段增加一個(gè)索引,命令如下:
db.files.createIndex({timestamp:-1})
其中,-1 表示降序,1 表示生序。
三、復(fù)合索引
復(fù)合索引就是一個(gè)索引包括多個(gè)字段,用法是基本一致的。比如,除了上面提到時(shí)間戳,再增加一個(gè)文件大小,具體命令如下:
db.files.createIndex({"size":1,"timestamp":-1})
上面命令的意思就是數(shù)據(jù)庫表首先按照 size 大小升序排序,當(dāng)存在相同大小的文件時(shí),再按照時(shí)間戳倒序排列。
結(jié)尾
好了,今天關(guān)于 mongoDB 數(shù)據(jù)庫中的兩種簡單索引類型就介紹完了,感興趣的話,就請自己動(dòng)手吧!
MongoDB 數(shù)據(jù)庫
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。