本文簡介
當第一次有人建議我為LinuxPlanet寫數據庫管理系統的比較時,我搖了搖頭,我從來沒做過這樣的比較,但是後來,我想:有何不可?也許一種新鮮天真的方法並不壞。因此就有本文:一種全新眼光看缤紛的Linux數據庫世界。本文共4部分。
在這裡比較的數據庫管理器是免費的或有便宜的許可費,並且他們可在所有層次的Linux系統上運行,從低端硬件到高端多處理器服務器,他們已經廣泛地應用世界范圍的生產系統上。為了比較,我把我自己放在了運行典型的Linux機器的境地,每天都由 DBMS提供動力。
我將考察:
mSQL
MySQL
PostgreSQL
我將以一個這3個數據庫系統的安裝和配置的討論開始,然後我將在第2部分繼續,通過用SQL的一個小數據庫的設計,指出我碰到的困難和試圖使數據庫系統接受的差異,我也將解釋一個程序的編碼,它在數據庫上執行各種的真實操作,例如增加數據並產生報表,同時討論數據庫在處理上的各種差別。這個客戶程序針對所有3個數據庫系統用C語言實現。為此,我必須不僅學習所有系統SQL API,還有SQL。如果沒有其他東西,這將肯定饒有興趣地看下去。
第三部分將包含一些真實的基准測試,作為獎賞。我已經有了在Linux 新聞組上款觀看關於數據庫的基准測試結果沒完沒了的爭論的保持懷疑的樂趣,因此我將只測試客戶程序做隨機事情的時間性能,既在理想的條件下運行跑又通過多個並發進程的時候。那時我將已經涉及DBMS之間的大多數差別,因此你應該有了關於他們的強項和弱項的一個良好概念。
最後的部分將是你所期待的一切:結論 覆蓋的特征 實現 在DBMS之間的API和性能差別。
但是現在,准備深入數據庫管理的王國的探險吧。
獲得並安裝 PostgreSQL
位於PostgreSQL 網站的軟件小節,有一個FTP和HTTP鏡像網站的列表,可從他們下載分發,也有定購DBMS CD的選擇。構造並安裝它是一個多步驟過程。
首先,如果你想要建立Postgresql的Perl語言綁定,在你系統上的Perl 5 可執行文件必須已知是perl5的名字。通常,這意味著你需要做一個符號連接。
也許要做的最重要的事情是創造一個postgres用戶。在我的系統上,這個命令可運行:
useradd - c “ PostgreSQL Administrator” - d /opt/postgresql - g users postgres
在其他系統上,命令可能有所不同。注意我假定postgres是在users組裡。你可能比較喜歡給數據庫主管一個它自己的組。
如果不另外說明,所有其它安裝步驟需要以用戶postgres身份來做。
解開PostgreSQL下載包並進入源代碼目錄樹:
tar - xvzf postgresql-6.5.2.tar.gz
cd postgresql-6.5.2
用root用戶,創建PostgreSQL目錄並把交給postgres用戶:
mkdir /opt/pgsql
chown postgres.users /opt/pgsql
進入源代碼目錄並配置軟件包。我用下列選擇:
./configure -- prefix=/opt/pgsql -- with-perl
進行構造和安裝過程:
cd .. /doc
make install
cd .. /src
make all
make install
現在是執行一些附加的系統配置的時間了。
作為root,將下行
/opt/pgsql/lib
加入/etc/ld.so.conf並運行ldconfig。
安裝Perl綁定,當用root登錄後:
cd interface/perl5
make install
設置postgres賬號。將下列行增加到.profile文件中:
PATH=$PATH:/opt/pgsql/bin
MANPATH=$MANPATH:/opt/pgsql/man
PGLIB=/opt/pgsql/lib
PGDATA=/opt/pgsql/data
export PATH MANPATH PGLIB PGDATA
LC_COLLATE=C
LC_CTYPE=C
export LC_COLLATE LC_CTYPE
最後3行對init過程和也許某些測試是必要的試。對實際的用戶,他們當然應該設置到適當的現場,但是每個使用 PostgreSQL的人至少需要有PGLIB和PGDATA的設置。
Source .profile文件:
source .profile
運行後期安裝:
initdb
獲得並安裝 MySQL
MySQL的最新版本可從MySQL下載頁。有很多可選擇的鏡像站點。你需要執行下列步驟:
解開包並進入源代碼目錄樹:
tar - xvzf mysql-3.22.26a.tar.gz
cd mysql-3.22.26a
配置軟件包;我使用下列選項目:
./configure -- prefix=/opt/mysql
構造它:
make
安裝它;用root用戶:
make install
然後你需要配置安裝:
作為root用戶,創建授權數據庫表:
scripts/mysql_install_db
作為root,啟動服務器:
/opt/mysql/bin/safe_mysqld &
作為root,創建mysql用戶:
useradd - c “ MySQL Administrator” - d /opt/mysql - g users mysql
作為root,把安裝樹屬權賦給mysql用戶: