Unlogged Table 使用優點:
- 加快表格讀寫速度
- 達成除了 Session-Based Temporary Table 之外,相似於全域性的 Temporary Table 功能
Unlogged Table 使用缺點:
- 沒有交易日誌備份
- 無法傳送資料到 Streaming Replication 的 Standby DB 上;也無法被 Logical replication 捕捉資料。
建立一個表格
postgres=> CREATE TABLE unlogtest(msg TEXT);
CREATE TABLE
改成 UNLOGGED
postgres=> ALTER TABLE unlogtest SET UNLOGGED; ALTER TABLE
也可以直接建立成 UNLOGGED Table
postgres=> CREATE UNLOGGED TABLE unlogtest(msg TEXT); CREATE TABLE
接著插入資料
postgres=> INSERT INTO unlogtest VALUES('Check this string on Standby DB!'); INSERT 0 1
接著,連線到 Streaming Replication Replica 上查看,會發現剛剛輸入的資料不會傳到 Standby 上,無法存取
postgres=> \c postgres user1 replica_ip 5432 Password for user user1: You are now connected to database "postgres" as user "user1" on host "replica_ip" at port "5432". postgres=> SELECT * FROM unlogtest; ERROR: cannot access temporary or unlogged relations during recovery
最後,這個功能可以用來設計出類比 Oracle 的 Global Temporary Table 功能。進一步資訊,可以參考 Tip:: PPAS 9.4 and Global Temporary Table – Database Technologies 這篇文章。
參考:
沒有留言:
張貼留言