Next Previous Contents

8. PostgreSQL 支援超過 200 Gig 的超級資料庫

早已有很多大公司將 PostgreSQL 用於大型的資料庫。在此提供以下技考︰

8.1 中央處理器種類—32 位元或 64 位元

32 位元處理器的電腦在資料庫超過 5 GigaByte 時表現會迅速下降。你可用 32 位元處理器執行 30 gig 的資料庫,但表現會下降。32 位元機器受到最多 2 GB 記憶體、2 GB 檔案系統及操作系統其他方面的限制。使用 SGI、IBM、或 HP 為 Linux 特製的檔案系統或 ext3-fs 來在 32 位元機器上支援大過 2 GB 的檔案大小。

對極大型的資料庫來說,我強烈建議你使用 64 位元處理器,如 Digital Alpha、Sun Ultra-sparc 64 位元處理器、SGI 64 位元處理器、Intel Mercel IA-64 處理器、HPUX 64 位元電腦、IBM 64 位元電腦。使用 64 位元的處理器來編譯 PostgreSQL,它就可以處理大型的資料庫及查詢。查詢大型表格和資料庫的速度會比 32 位元的電腦快數倍。64 位元電腦的優點是你有很大的記憶位址 (memory addressing space) 和操作系統可處理很大的檔案系統、為大型資料庫提供較佳表現、 支援更多記憶體、能力更強……

(譯按︰2.4 的 Linux 核心已突破 2 GB 檔案大小的限制,並支援最多 64 GB 記憶體。)

8.2 多處理器

要使用大型的資料料,你最好使用內有 4、16 或 32 夥處理器的 SMP 電腦。另一方面,你也可使用 4 至 5 部單處理器電腦,而把你的資料庫分割 (partition) 為 4 至 5 個分開的資料庫,每個在一部電腦運行。每個處理器都以高速 (100MBits)的乙以太網絡卡連接。例如,你的資料庫中有二百個表格, 你可把它們分為四個資料庫,每個有五十個表格。這樣,你把工作平均分配給 4 部分開的電腦。這是一個比四處理器電腦便宜的方案。 你可使用‘跨資料庫的查詢’、在區域網絡使用 NFS、為唯讀表格‘CREATE VIEW’來完成這工作。每個處理器都可「見到」所有資料庫,即全部 200 個表格。在未來,PostgreSQL 會支援‘跨資料庫的查詢’(已經在 TODO 名單),在將推出的 7.1 版出現。例如,使用代號 a、b 作表格名稱作的跨資料庫查詢會類似——


select a.col1, a.col2, b.col4, b.col7
from
    database1.my_tablea a, database2.my_tableb b
where
    a.col1 = b.col3 and
    a.col4 = b.col9;

update my_tablea
set
    col1 =  b.col2
from
    database1.my_tablea a, database2.my_tableb b
where
    a.col4 = b.col9;

8.3 複製 (Replication) 伺服器

為大型企業/商業公司而設的複製伺服器由 PostgreSQL Inc 作商業販賣。你可使用複製伺服器來提供重覆的資料及高度可得性 (availability)。複製伺服器是一件複雜、先進的產品,因此需要金錢。


Next Previous Contents