linux資料庫大比拚(一)
最後更新:2018-12-07
來源:互聯網
上載者:User
作 者: Matthias Warkus
原文作者: Matthias Warkus
翻譯:yanzi clyan@sohu.com <mailto:clyan@sohu.com>
本文簡介
當第一次有人建議我為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使用者:
chown - R mysql.users /opt/mysql
獲得並安裝 mSQL
下載mSQL不比下載PostgreSQL或MySQL那樣簡單, 但是,其分發更小。從Hughes
技術網頁開始並且尋找更進一步的指令。為了下載mSQL,首先需要在該網站註冊並
且通過一個基於CGI的下載系統,如有必要允許你在一些鏡像網站間選擇。構造和
安裝的mSQL的步驟如下:
解開包並進入原始碼目錄:
tar - xvzf msql-2.0.11.tar.gz
cd msql-2.0.11
產生目標定義:
make target
進入你平台的目標目錄:
cd targets/Linux-2.2.12-i586
配置軟體包:
./setup
編輯site.mm;我將安裝路徑改成/opt/msql。
構造它:
make all
作為root 使用者安裝它:
make install
在構造和安裝的mSQL以後,你需要配置它:
作為root,建立msql使用者:
useradd - c “mSQL Administrator” - d /opt/msql - g users msql
作為root,把目錄屬權交給msql使用者:
chown - R msql.users /opt/msql