1. 程式人生 > >Postgresql中建立函式索引

Postgresql中建立函式索引

1、建立函式索引的語法,如下表示為表的指定欄位的upper函式建立了一個函式索引
CREATE INDEX 索引名 ON 表名 (upper(欄位名));

2、使用場景:
如果某張表的資料量很大,而其中某個欄位在當前資料庫中儲存大小寫共存,當需要查詢的時候忽略大小寫,那麼此時一般使用到的方法就是使用sql中的upper()函式,但是使用upper()函式後,查詢語句是不會走索引的,所以建議為該欄位建立一個函式索引,從而提高查詢效率。

3、實測如下:
存在一張資料量大約為350w的表。
①未建立函式索引,使用如下語句查詢
這裡寫圖片描述
查詢時間為:9s

②建立upper函式的函式索引後:4.5s

4、總結:
如果場景必須存在忽略大小寫這種方式,才建立函式索引來處理,一般情況下,建議不要在查詢語句的條件中加入函式,因為會導致索引失效。