天天看點

【PostgreSQL 創新營】第二課:認識PostgreSQL中與衆不同的索引 答疑彙總

  1. 怎麼系統的學一下pg庫,或者資料庫的這些原理性的東西

    德哥Github位址:

    https://github.com/digoal/blog/blob/master/README.md 視訊教程: https://github.com/digoal/blog/blob/master/201901/20190105_01.md
  2. 聽說pg是多模資料庫,這裡的多模我應該怎麼了解呢?

    可以了解為支援多種資料模型, 關系模型, nosql模型, 圖譜模型, 時序模型, 流處理模型, 機器學習模型等. 同時支援模型擴充.

  3. 為什麼要手動觸發統計資訊更新?PG做不到自動更新?

    支援自動, 有背景analyze程序。但是需要等排程, 一般1分鐘左右(可以通過參數設定間隔), 周遊所有database。

  4. GIN索引中文能用麼?

    能用。

  5. 中文分詞怎麼做?

    模糊查詢不用分詞;分詞搜尋才需要分詞, 分詞用zhparser, jieba等分詞插件, 采用tsvector文本向量類型, tsquery搜尋文法

  6. 9.5 pg_hba. Conf 改的話 必須重新開機資料庫嗎

    不需要重新開機, reload 就可以

  7. 索引相關問題,PostgreSQL 9種索引的原理和應用場景(btree , hash , gin , gist , sp-gist , brin , bloom , rum , zombodb , bitmap) https://github.com/digoal/blog/blob/master/201706/20170627_01.md
  8. PG用的是堆組織表還是索引組織表?普通索引資料結構是B樹還是B+樹? https://github.com/digoal/blog/blob/master/201605/20160528_01.md
  9. 請問 like "%XXX%"走索引的底層算法原理大概是什麼樣的?有參考的連接配接資料嗎? https://github.com/digoal/blog/blob/master/202009/20200912_01.md
  10. PG的負載均衡有什麼實作方案

    讀寫分離, pgpool-II或業務實作. sharding 采用shardingsphere或citus實作, 也可以使用現成等産品例如polardb, antdb, tbase等.

    https://github.com/digoal/blog/blob/master/202002/20200214_03.md
  11. pg庫分區表怎麼實作的,和分庫分表之間改如何選用。

    繼承.分區表建議使用PG新版本, 老版本在優化器方面有性能問題.

    滿足業務需求等情況下優先使用分區. 分庫會引入更多的業務限制.

  12. 主從結構,從庫為什麼也會有事事務,來自xcat字段

    事務解決資料庫通路隔離,原子性等問題, 例如rc,rr,ssi隔離級别, 不管在主還是從庫, 隻要有隔離需求, 都需要開啟事務. 是以從庫也可以看到事務.

  13. pg資料量達到多大量的時候适合做分區?做表分區後會影響整體性能嗎?

    取決于硬體性能以及業務使用模式.

    假設硬體足夠好, update頻率高的表建議單分區的大小滿足垃圾回收的速度. 而更新不頻繁的表, 可以大很多再分區, 可能達到上百GB再考慮分區.

  14. PG中遺傳查詢适用于什麼場景,geqo_threshold設定多少合适呢?

    高并發多表關聯查詢, 減少優化器窮舉開銷.

    建議預設值.

  15. PG可以讀取xml檔案裡面的二級或者三級标簽的内容嗎?可以的話如何實作?

    建議使用jsonb.

    是否支援二三級标簽内容檢索具體看pg的xml文檔

  16. 查IP的那個例子裡,多加一個索引,反而并沒有變得高效,那些情況會發生這種狀态?怎麼避免?

    請再看一看視訊, 注意用了哪個索引. ip範圍搜尋使用gist索引加速.

  17. 預設開啟autovacuum,造成資料庫夯住,請問原因是什麼?我看手冊隻是寫了是一些情況下,具體什麼沒說。有什麼方法來避免出現這種情況嗎?

    autovacuum鎖粒度很小, 除了DDL會發生沖突, 其他不會有鎖沖突, 建議再現場分析.

  18. 問下pg插件多了會會不會影響性能,有這方面的tps測試麼

    不會影響.

  19. 我有個權限網點過濾的問題。一個1000萬行的表,cst_id,sitid(數組) 。一個1000行的sit表,值唯一。用sit表過濾這個客戶表如何能做的最快?

    數組包含查詢使用gin索引.

  20. 千萬級資料 多表關聯的場景pg适合嗎

    适合. 有nestloop, merge, hash等多種join方法. 支援并行計算加速大量資料join的運算.

  21. pg怎樣将大資料量的查詢結果快速導入另一張表

    inset into select ...

  22. PG 庫的執行計劃怎麼分析,有沒有文檔之類的

    有文檔, 在德哥的github的裡面有視訊講解

  23. MSSQL有清空SQL緩存:DBCC FREEPROCCACHE

    我們pgsql有沒有類似的清空SQL緩存 sql

    如果需要清空plan cache使用PG discard 文法

    如果是清空shared buffer使用外置插件

  24. 請問pg在圖資料庫應用上怎麼優化和設定索引?

    使用CTE遞歸, 單層索引做到最有就可以.

  25. 能提高一個 pg 12 postgres.conf 啟動參數檔案 參考 發個連結供參考就可以

    德哥github裡面有

  26. 本人是從mysql過來的,在mysql中create schema;和create database是一樣的。PG中schema和database的差別是什麼?

    德哥github裡面有一篇pg邏輯架構體系介紹

    PG的結構是cluster-database(s)-schema(s)結構, 每一層都是隔離的, 權限也隔離.

  27. oracle-PG的異構遷移,函數和存儲過程有好的解決辦法嗎?

    Ora2PG或者使用DSG收費産品, 阿裡雲adam等.