MySQL 是瑞典的MySQL AB公司開發的一個可用於各種流行作業系統平台的關聯式資料庫系統,它具有客戶機/伺服器體繫結構的分散式資料庫管理系統。MySQL 完全適用於網路,用其建造的資料庫可在網際網路上的任何地方訪問,因此,可以和網路上任何地方的任何人共用資料庫。MySQL具有功能強、使用簡單、管理方便、運行速度快、可靠性高、安全保密性強等優點。MySQL用C和C++編寫,它可以工作在許多平台(Unix,Linux,Windows)上,提供了針對不同程式設計語言(C,C++,JAVA等)的API函數;使用核心線程實現多線程,能夠很好的支援多CPU;提供事務和非事務的儲存機制;快速的基於線程的記憶體配置系統;MySQL採用雙重許可,使用者可以在GNU授權條款下以免費軟體或開放源碼軟體的方式使用MySQL軟體,也可以從MySQL AB公司獲得正式的商業許可。
除了以上特點,MySQL 還有一個最大的特點,那就是在諸如 UNIX 這樣的作業系統上,它是免費的,可從網際網路上下載其伺服器和客戶機軟體。並且還能從網際網路上得到許多與其相配的第三方軟體或工具。而在 Windows 系統上,其客戶機程式和客戶機程式庫是免費的。
1.1. 為什麼選用 MySQL
如果您正在尋找一種免費的或不昂貴的資料庫管理系統,可以有幾個選擇,如,MySQL、mSQL、Postgres(一種免費的但不支援來自商業供應商引擎的系統)等。在將 MySQL 與其他資料庫系統進行比較時,所要考慮的最重要的因素是效能、支援、特性(與 SQL 的一致性、擴充等等)、認證條件和約束條件、價格等。相比之下,MySQL 具有許多吸引人之處:
1. 速度。MySQL 運行速度很快。開發人員聲稱 MySQL 可能是目前能得到的最快的資料庫。可訪問 http://www.mysql.com/benchmark.html (MySQL Web 網站上的效能比較頁),調查一下這個效能。
4. MySQL 除了提供內嵌軟體外,它還被許多很有才能的人使用。這些人喜歡編寫軟體以提高其產品效率,或願意將自己編寫的軟體提供給他人使用。因此,使用 MySQL能得到各種各樣的第三方工具,這些工具令 MySQL使用更方便,或者擴充了 MySQL,使其進入諸如 Web 網站開發這樣的領域。
1.3. MySQL 是否免費
MySQL 不是一種開放的原始碼產品,但一般可以免費使用。可以參考“MySQL 參考指南”的許可說明,其基本內容如下:
1. 客戶機程式和客戶機編程庫在所有平台上都是免費的。
2. 在 UNIX 和其他非 Windows 平台上,MySQL 伺服器可免費使用,但不能出售它或出售需要它的任何軟體或服務。如果這樣做,應該得到伺服器的使用許可證。理由是,如果用 MySQL 賺錢,那麼應當分一些給MySQL 的開發人員($495 對有助於您賺錢的專業的 RDBMS 來說是很便宜的,並且還有大量的免費軟體,可用來協助您更有效地使用 MySQL。)
3. MySQL 伺服器的 Windows 版本需要許可證。目前MySQL Pro在網上的報價(注意MySQL Pro是MySQL的商業版本):
http://www.mysql.com/products/pricing.html
MySQL Pro includes the InnoDB transactional storage engine, which provides row-level locking.
Number of licenses
Price per copy
EUR
USD
GBP
1 .. 9
440.00
495.00
290.00
10 .. 49
315.00
360.00
205.00
50 .. 99
255.00
290.00
165.00
100 .. 249
195.00
220.00
127.00
250 .. 499
155.00
175.00
100.00
500 +
ask for quote, sales@mysql.com
4. MySQL 的較舊的版本通過 GNU Public License(GPL)許可證可以得到,並可用於任何用途而無需付費。MySQL 3.20.32a 在 GPL 條件下可用。
5. 無論是否需要伺服器許可證,都可在付費的基礎上從 MySQL 開發人員那裡得到正式的支援人員,本人提請讀者注意這一點。(特別是如果您的公司主管不贊成使用沒有如此保證的軟體時更是如此。)MySQL提供多種層級的支援人員,除了得到極好的支援外,您還能協助MySQL的開發,進而使整個MySQL世界受益。
6. 關於 Windows 許可證的說明
有時候有人會問,“我使用的是 Windows,為什麼必須取得 MySQL 伺服器的許可證呢?”這是一個很合理的問題,而且也存在一個合理的答案,那就是軟體開發的費用。為了從事軟體開發,需要一個作業系統和一些開發工具,如編輯器和編譯器等。就這些需求而言,在 UNIX 的開發與 Windows 的開發之間存在根本的不同。在 UNIX 下,可免費得到幾乎所有東西:
a) 使用的作業系統有幾個選擇,如 Linux 或免費的 BSD 系列,譬如 FreeBSD、NetBSD 和 OpenBSD。
b) 使用的開發工具,這些作業系統全都帶有編輯器,如 vi 和編輯程式巨集指令及 gcc 和 egcs 這樣的編譯器。
c) 在升級這些作業系統或發布開發工具時,可從網際網路上下載它們或從一個便宜的 CD 上得到,即使是進行重大的修改也是這樣。
而在 Windows 上開發軟體卻相當昂貴,例如:
a) 作業系統不是免費的。
b) 開發工具,如編譯器不是免費的。
c) 作業系統或工具的升級時,除非是小問題的修改或作微小的升級,否則要再次付費。所有這些表明,UNIX 下的軟體開發成本幾乎是零,而在 Windows 其成本相當可觀。MySQL 的開發人員可能願意繼續研究 MySQL,但他們不希望為這種權利付那麼多錢。不管怎麼說,其 Windows 的開發成本必須收回,發售MySQL 許可證就是一種手段。
1.4. 目前版本
可以在網上下載的MySQL版本如下:
MySQL 4.0 -- Production release (recommended)
MySQL 4.1 -- Alpha release (use this for new development)
MySQL 5.0 -- Development tree (use this for previewing and testing new features)