91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PostgreSQL查詢速度慢如何解決

發布時間:2021-05-08 15:34:21 來源:億速云 閱讀:2811 作者:Leah 欄目:編程語言

PostgreSQL查詢速度慢如何解決?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

并非每個PostgreSQL查詢都會自動使用索引,只有在表的大小超過一個最小值,并且查詢只會選中表中較小比例的記錄時才會采用索引。這是因為索引掃描引起的隨即磁盤存取可能比直接地讀取表(順序掃描)更慢。

為了判斷是否使用索引,PostgreSQL必須獲得有關表的統計值。這些統計值可以使用 VACUUM ANALYZE,或 ANALYZE 獲得。 使用統計值,優化器知道表中有多少行,就能夠更好地判斷是否利用索引。 統計值對確定優化的連接順序和連接方法也很有用。在表的內容發生變化時,應定期進行統計值的更新收集。
索引通常不用于 ORDER BY 或執行連接。對一個大表的一次順序掃描,再做一個顯式的排序通常比索引掃描要快。
但是,在 LIMIT 和 ORDER BY 結合使用時經常會使用索引,因為這只會返回表的一小部分。 實際上,雖然 MAX() 和 MIN() 并不使用索引,通過對 ORDER BY 和 LLIMIT 使用索引取得最大值和最小值也是可以的:
SELECT colFROM tabORDER BY col [ DESC ]LIMIT 1;
如果你確信PostgreSQL的優化器使用順序掃描是不正確的,你可以使用SET enable_seqscan TO 'off' 然后再次運行查詢,你就可以看出使用一個索引掃描是否確實要快一些。當使用通配符操作,例如 LIKE 或 ~ 時,索引只能在特定的情況下使用。
比如字符串的開始部分必須是普通字符串,也就是LIKE模式不能以 % 打頭。~(正則表達式)模式必須以 ^ 打頭。
字符串不能以匹配多個字符的模式類打頭,例如 [a-e]。
大小寫無關的查找,如ILIKE和 ~* 等不使用索引。
在做 initdb 時必須采用缺省的本地設置Clocale,因為系統不可能知道在非C locale情況時下一個最大字符是什么。在這種情況下,你可以創建一個特殊的text_pattern_ops索引來用于LIKE的索引。

關于PostgreSQL查詢速度慢如何解決問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

卓资县| 江永县| 叶城县| 陆川县| 台东县| 新宾| 蒙阴县| 阿荣旗| 台山市| 巩义市| 新和县| 鄂尔多斯市| 上思县| 连南| 杭锦旗| 长寿区| 房产| 四子王旗| 二连浩特市| 凤庆县| 中江县| 子洲县| 青铜峡市| 庄河市| 仙居县| 辽宁省| 吴忠市| 易门县| 东至县| 陈巴尔虎旗| 临猗县| 米易县| 休宁县| 安宁市| 金乡县| 莱芜市| 罗平县| 嫩江县| 达州市| 于田县| 灌南县|