訂閱
糾錯(cuò)
加入自媒體

如何實(shí)現(xiàn)僅對(duì)部分?jǐn)?shù)據(jù)構(gòu)建索引?

2021-03-05 09:37
yzsDBA
關(guān)注

索引會(huì)占用比想象中的還要大的空間,有好幾次我向表中添加索引以增加速度,但是對(duì)磁盤(pán)使用量的快速增長(zhǎng)感到震驚。雖然索引是構(gòu)建在列上,但是并不是每個(gè)行記錄都需要在索引里面,這是部分索引partial indexes就提供了一個(gè)解決方案。

假設(shè)在電子商務(wù)應(yīng)用程序的數(shù)據(jù)庫(kù)中有一個(gè)很大的orders表,包含應(yīng)用程序中指定的每種類型的訂單數(shù)據(jù),甚至包括那些未完成的訂單。此時(shí)應(yīng)用程序有一個(gè)搜索功能,可以根據(jù)orders表中的一列進(jìn)行過(guò)濾,但是那些未完成的訂單不需要在這個(gè)索引中。

創(chuàng)建部分索引時(shí)使用WHERE子句,使索引只包含符合條件的行。下面是一個(gè)簡(jiǎn)單示例:

CREATE INDEXorders_completed_user_id  ON orders (user_id)  WHERE completed IS TRUE;

誠(chéng)然,在這樣的場(chǎng)景中保持的數(shù)據(jù)量將會(huì)很少(user_id可能只是一個(gè)整數(shù)),但是對(duì)于文本列或多列索引,最終節(jié)省的磁盤(pán)空間將會(huì)很大。

聲明: 本文由入駐維科號(hào)的作者撰寫(xiě),觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

    掃碼關(guān)注公眾號(hào)
    OFweek人工智能網(wǎng)
    獲取更多精彩內(nèi)容
    文章糾錯(cuò)
    x
    *文字標(biāo)題:
    *糾錯(cuò)內(nèi)容:
    聯(lián)系郵箱:
    *驗(yàn) 證 碼:

    粵公網(wǎng)安備 44030502002758號(hào)