如何實現僅對部分數據構建索引?
2021-03-05 09:37
yzsDBA
關注
索引會占用比想象中的還要大的空間,有好幾次我向表中添加索引以增加速度,但是對磁盤使用量的快速增長感到震驚。雖然索引是構建在列上,但是并不是每個行記錄都需要在索引里面,這是部分索引partial indexes就提供了一個解決方案。
假設在電子商務應用程序的數據庫中有一個很大的orders表,包含應用程序中指定的每種類型的訂單數據,甚至包括那些未完成的訂單。此時應用程序有一個搜索功能,可以根據orders表中的一列進行過濾,但是那些未完成的訂單不需要在這個索引中。
創建部分索引時使用WHERE子句,使索引只包含符合條件的行。下面是一個簡單示例:
CREATE INDEXorders_completed_user_id ON orders (user_id) WHERE completed IS TRUE;
誠然,在這樣的場景中保持的數據量將會很少(user_id可能只是一個整數),但是對于文本列或多列索引,最終節省的磁盤空間將會很大。
聲明:
本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯系舉報。
請輸入評論內容...
請輸入評論/評論長度6~500個字


分享













