2015年1月30日 星期五

MySQL 替代品: MariaDB

原文出處: 毫無理由使用MySQL:MariaDB - 自由軟體鑄造場
http://www.openfoundry.org/tw/news/8974

MySQL 曾是(仍是)最受歡迎的開放源碼資料庫,然而在 Oracle 主導下卻正逐漸沒落。出自於 MySQL 創辦人 Michael Widenius "Monty" 的另一套開放源碼資料庫 MariaDB,最近則日漸普及,不僅成為主要開放源碼作業系統的預設資料庫,更在 WikiMedia 等重要組織與企業,取代 MySQL 的地位。日前 SkySQL 與 MariaDB 的總公司 Monty Program Ab 進行合併,擴編了開發者團隊。以下是 Monty 日前進行的專訪,談到了資料庫領域的改變。
問:MySQL 是全球主要專案與企業的預設資料庫,MySQL 如此成功的原因為何?它有哪些特質?是其開放源碼的特性、技術優勢、或是 Sun 的行銷能力?
Monty:MySQL 在被 Sun 買下前就已經很普及了,這也是 Sun 之所以買下它的理由之一。
MySQL 之所以受到如此歡迎的原因是:
  1. 自由軟體/開放源碼
  2. 我們從一開始就對用戶非常友善並且樂意提供協助
  3. 前五年我個人只為了協助用戶就寫了 3 萬封電郵
  4. 雙重授權
  5. 讓我們賺到錢好雇用更多人加入專案
  6. 讓我們吸引到投資者
  7. 從一開始釋出就在大量平台上測試 MySQL 二進位檔案
  8. 當我們開始 MySQL 時,多數自由軟體仍僅有原始碼,也沒有對所有平台做測試
  9. 從一開始我們就設定好,要讓所有人都可以在 15 分鐘內取得並執行 MySQL
  10. 我們很幸運在對的時機推出對的產品
  11. 當我們開始時,市場沒有自由 SQL 資料庫的競爭者


問:兩大開放源碼勢力都出自於芬蘭人之手,也就是 Torvalds 與 Widenius。芬蘭的教育系統是否鼓勵這些行動?
Monty:在這兩個案例中,教育系統對產品並無太多影響。
我想比較多是出自於芬蘭人的本性,我們很固執又討厭放棄,即使其他人都說我們做的事一點用都沒有,而且我們不可能與大公司競爭。
就 Linus Torvalds 與我而言,我們都有一種天分,可以讓和我們談過的開發者,對我們所做的事感到興奮。我們兩個人的母語都不是英語,也許這一點有助於和世界各地的開發者進行溝通,因為從一開始我們不設限加入專案的人必須會說流利英語。
問:你曾對 MySQL 賣給 Oracle 有所疑慮(你的疑慮也成真了)。MySQL 的普及率最近正在下滑。你認為下滑的原因為何?Oracle 做錯了什麼?
Monty:是的,MySQL 近來沒落了,不過它所流失的用戶群,多半都跑向 MySQL 生態系的其他產品,像是 MariaDB。
Oracle 做錯的事有:
  1. MySQL 新的企業延伸套件採取封閉源碼
  2. 資料庫的臭蟲不再公開
  3. 不再積極更新 MySQL 的公開代碼庫
  4. 未能快速傳達或修復安全問題,這一點讓 Linux 散佈套件對 Oracle 很不滿
  5. Oracle 選擇移除功能,而非修正臭蟲
  6. MySQL 5.5 的新程式碼不再有測試案例
  7. 來自 Oracle 的部分新程式碼好的出乎意料,但不幸的是品質參差不齊,相當可觀的一部分在我們納入 MariaDB 前,更需要重新改寫


另外,或許最糟糕的是,社群沒辦法與 Oracle 的 MySQL 開發者合作。因為:
  1. Oracle 不接受程式修補
  2. 沒有公開的發展藍圖
  3. 沒有任何方法可以和 MySQL 開發者討論實作細節以及目前程式碼的運作


問:在此同時 MariaDB 逐漸受到重視,對一般用戶而言,MariaDB 與 MySQL 的差異為何?
簡單來說:
  1. MariaDB 比 MySQL 多了 30 個人年以上的開發工作量
  2. 更多功能
  3. 更快
  4. 更穩定
  5. 安全問題更少


最簡單的答案是,毫無理由不選擇 MariaDB 5.5 來取代 MySQL 5.5,這個答案下一版本依然適用。
問:MariaDB 如何改變資料庫領域?MySQL 仍在 Web 上占有主導地位,有任何鼓勵網路託管服務供應商改用 MariaDB 的計劃嗎?
Monty:有許多網路託管服務供應商已經支援 MariaDB。你只需提出詢問,許多供應商就會提供 MariaDB。
我們正在積極遊說網路託管服務供應商,請他們公開支援 MariaDB。然而這的確是個耗時的工作。
問:MariaDB 可以用來直接取代 MySQL。撇開雙方在技術上的相似性不談,這兩個專案在開發與授權上的主要差異為何?
Monty:MariaDB 是由具有開放發展藍圖的社群所開發,任何人都可以輕易參與其中。MySQL 被發展成一個封閉源碼的專案,只有 Oracle 和少數 Oracle 選出的公司才能參與。MariaDB 和 MySQL 一樣採取 GPL,不過 MariaDB 有給 C 和 Java 用的 LGPL 驅動程式。我們也在開發 LGPL ODBC 驅動程式。如果你使用了這些驅動程式,在大多數情況下,你並不需要購買 MySQL/MariaDB 的授權。
問:從 MySQL 轉移至 MariaDB 的難易度?
Monty:只是小事一樁。只要移除 MySQL,然後安裝 MariaDB。你的所有工具,連接程式都可以如常運作。你也不需要匯出和匯入資料。格式與檔案名稱都是相同的。
問:在 WikiMedia 基金會等組織,或是 openSUSE 與 Fedora 這些 GNU/Linux 散佈套件上,我們已經看到若干採用 MariaDB 的例子,但透過 Monty Program Ab 進行商業部署呢?我的意思是,你公司的營收現況為何?
Monty:Monty Program Ab 從某些公司取得了 MariaDB 的開發資金。此外,Monty Program Ab 也從提供第三級支援給 SkySQL 等公司而獲得資金。
問:SkySQL 如今與 Monty Program Ab 合併,這對 MariaDB 的整個開發者基礎有何影響?
Monty:當最好的 MySQL/MariaDB 開發者、支援者、訓練人員、銷售人員齊聚同一家公司,我們如今更能夠提供最好的服務,給所有的 MySQL 與 MariaDB 用戶。
問:你如何確保 MariaDB 不會有和 MySQL 一樣,被其他公司買下的命運?
Monty:這就是我們創建 MariaDB 基金會的原因。MariaDB 基金會是該社群發展的驅動力,也是 MariaDB 伺服器商標的所有者。如此即可確保再也沒有開出 MySQL 新分支的必要了。MariaDB 永遠會是自由且屬於社群的專案。


相關網址



  1. 毫無理由使用 MySQL:MariaDB、MySQL 創始者 Michael Widenius 的訪談
    http://www.muktware.com/5565/there-no-reason-all-use-mysql-mysql-mariadb-founder-michael-widenius

沒有留言:

Java 不同編碼字串, 其字串長度大小計算

以 Java 開發專案, 在 DAO 寫入資料庫時, 常遇到JAVA 字串與資料庫編碼不一致, 有時會產生字串過長,導致無法寫入資料庫的情況. 這時就要在入庫前, 先驗證 JAVA 編碼字串是否超出資料庫欄位長度 JAVA 依 不同編碼, 其長度是不一樣的 如: ...