成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

管理大型 Postgres 數據庫的三個技巧

數據庫
在處理龐大的數據庫時,請嘗試這些方便的解決方案,以解決常見的問題。

關系型數據庫 PostgreSQL(也被稱為 Postgres)已經越來越流行,全球各地的企業和公共部門都在使用它。隨著這種廣泛的采用,數據庫已經變得比以前更大了。在 Crunchy Data,我們經常與 20TB 以上的數據庫打交道,而且我們現有的數據庫還在繼續增長。我的同事 David Christensen 和我收集了一些關于管理擁有巨大表的數據庫的技巧。

大表

生產數據庫通常由許多具有不同數據、大小和模式的表組成。常見的情況是,最終有一個巨大的、無序的數據庫表,遠遠大于你數據庫中的任何其他表。這個表經常存儲活動日志或有時間戳的事件,而且對你的應用或用戶來說是必要的。

真正的大表會因為很多原因造成挑戰,但一個常見的原因是鎖。對表的定期維護往往需要鎖,但對大表的鎖可能會使你的應用癱瘓,或導致堵塞和許多令人頭痛的問題。我有一些做基本維護的技巧,比如添加列或索引,同時避免長期運行的鎖。

添加索引的問題:在創建索引的過程中鎖住表。如果你有一個龐大的表,這可能需要幾個小時。

CREATE INDEX ON customers (last_name)

方案:使用 ??CREATE INDEX CONCURRENTLY?? 功能。這種方法將索引創建分成兩部分,一部分是短暫的鎖定,以創建索引,立即開始跟蹤變化,但盡量減少應用阻塞,然后是完全建立該索引,之后查詢可以開始使用它。

CREATE INDEX CONCURRENTLY ON customers (last_name)

添加列

在數據庫的使用過程中,添加列是一個常見的請求,但是對于一個巨大的表來說,這可能是很棘手的,同樣是由于鎖的問題。

問題:當你添加一個新的默認值為一個函數的列時,Postgres 需要重寫表。對于大表,這可能需要幾個小時。

方案:將操作拆分為多條基本語句,總效果一致,但控制鎖的時間。

添加列:

ALTER TABLE all_my_exes ADD COLUMN location text

添加默認值:

ALTER TABLE all_my_exes ALTER COLUMN location SET DEFAULT texas()

使用 ??UPDATE?? 來添加默認值:

UPDATE all_my_exes SET location = DEFAULT

添加約束條件

問題: 你想添加一個用于數據驗證的檢查約束。但是如果你使用直接的方法來添加約束,它將鎖定表,同時驗證表中的所有現有數據。另外,如果在驗證的任何時候出現錯誤,它將回滾。

ALTER TABLE favorite_bands ADD CONSTRAINT name_check CHECK (name = 'Led Zeppelin')

方案:告訴 Postgres 這個約束,但不要驗證它。在第二步中進行驗證。這將在第一步中進行短暫的鎖定,確保所有新的/修改過的行都符合約束條件,然后在另一步驟中進行驗證,以確認所有現有的數據都通過約束條件。

告訴 Postgres 這個約束,但不要強制執行它:

ALTER TABLE favorite_bands ADD CONSTRAINT name_check CHECK (name = 'Led Zeppelin') NOT VALID

然后在創建后驗證它:

ALTER TABLE favorite_bands VALIDATE CONSTRAINT name_check

想了解更多?

David Christensen 和我將在 3 月 9 號到 10 到在加州帕薩迪納參加 SCaLE 的 Postgres Days。很多來自 Postgres 社區的優秀人士也會在那里。加入我們吧!

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2010-04-23 12:24:06

Oracle數據庫

2013-12-18 13:06:33

數據庫安全安全審計啟明星辰

2012-02-28 09:41:00

Linux管理效率技巧

2010-03-10 10:41:23

Linux管理效率

2010-05-19 18:11:05

2011-05-19 13:49:09

2011-03-30 13:03:14

數據庫營銷

2023-05-10 16:42:35

2013-01-06 11:01:59

大數據分析

2022-09-01 23:29:22

MySQLPython數據庫

2010-10-26 13:45:01

Oracle數據庫備份

2009-06-11 13:12:59

Oracle索引創建索引

2010-05-17 16:04:40

MySQL數據庫

2010-05-14 14:00:59

MySQL數據庫優化

2022-02-21 14:14:03

SSH加密密鑰

2021-10-13 06:59:03

Python技巧編程

2009-07-14 09:50:06

DB2數據庫設計

2022-11-10 08:31:09

原生圖數據庫可視化

2012-10-19 13:25:33

管理員Linux

2023-03-22 09:18:53

數據庫管理架構
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产在线观看一区二区 | 精品国产乱码久久久久久牛牛 | 欧美一区二区在线观看 | 日韩一二三区视频 | 日韩精品一区二区三区免费观看 | 国产精品久久久久久久久久免费看 | 韩国精品一区 | 欧美亚洲国产日韩 | 高清一区二区三区 | 国产精品一区在线观看你懂的 | 好姑娘影视在线观看高清 | 免费在线观看黄视频 | 小h片免费观看久久久久 | 日韩精品成人在线 | 国产欧美一区二区三区免费 | 欧美色人 | 91亚洲精品久久久电影 | 成人精品一区二区三区四区 | 亚洲天堂免费在线 | 91国在线高清视频 | av色站| 亚洲色图插插插 | 国产免费一区二区三区免费视频 | 欧美日韩久| 亚洲综合在线视频 | 国产专区在线 | 欧美大片在线观看 | 日韩欧美在线视频 | 一级毛片视频 | 亚洲免费网 | 日本一区二区不卡视频 | 91在线观看视频 | 久久免费精品 | 九九九视频在线 | 久久久高清| 欧洲亚洲视频 | 国产日韩一区二区三免费高清 | 久草久 | 久久三区| 美女高潮网站 | 午夜在线观看视频 |