2019以前の記事で、WebサーバのApache(アパッチ)について、それがインターネットの発達にどれだけ寄与したか、そしてそのマーケットシェアが競合のNginx(エンジンエックス)に押されつつあることなどをご説明しました。PHP)の一つであり、インターネットの半分はLAMPにより成り立っていると言っても過言ではないでしょう。今日は、共通点はありつつも異なるデータベースであり、世界中の何百万ものウェブサイトで使用されているMariaDB(マリアディービー)とMySQL(マイエスキューエル)の違いについてご紹介します。MariaDBとMySQLの違いMariaDBはMySQLから派生したものですが、二つのデータベース管理システムは大きく異なります。MariaDBは完全なるGPLライセンスですが、MySQLはデュアルライセンスで提供されている。それぞれ異なる方法でスレッドプールを提供している。MariaDBは複数のストレージエンジンに対応している。多くのケースで、MariaDBの方が高い性能を誇る。市場がMicrosoftとOracleが独占所有権を持つ(そして高額な)ソリューションに独占されていた時に開発されました。WordPressの開発ワークフローを改善する方法をお探しですか?当社のプランをご確認ください。Archive.org)MySQLは今では原型的なブランドです。現在のインターネットを形成するのに重要な役割を果たしました。Journalのこの記事は初期のMySQLに焦点を当てています。GPLを使用し提供されたMySQLは、後に誕生する多くのソフトウェアベンダーのための下地を作りました。Widenius氏はデュアルライセンスについてこう話します。...MySQLは他の製品に簡単に埋め込むことのできるインフラとなり得る製品であるため「MySQLを自社製品に埋め込みたいが、最終的な製品をオープンソースにはしたくない」という人向けにライセンスを販売することができました。LAMPスタックの一部として、サーバーで展開されるウェブアプリケーションは、通常MySQLの埋め込みやコードの配布をしません。誰もが自由にそれぞれのウェブ製品にソフトウェアを使うことができたのです。公式発表から10年も経たずして、MySQLはオープンソース関係データベース市場を独占するようになりました。Googleトレンドによると、2004年から2005年にかけてMySQLの検索回数はピークとなったとのことです。MySQLに対する関心の推移MySQLを使用している企業には次のようなものがあります。2011年の報告書によると「1秒に6000万件のクエリと約400万件の更新」があり、MySQLは「いいね、シェア、ステータスアップデート、通知、リクエストなど全てのユーザー間のインタラクション」を処理しているということです。Netflixのプラットフォームの支払い部分YoutubecomAirbnbその他多数もう一つ特筆すべきMySQLの普及に貢献した要因はphpMyAdmin(ピーエイチピーマイアドミン)です。PhpMyAdminはcPanelなどの共有ウェブホスティングサービスの管理コンソールに早期から参入した、1998年に開発されたウェブブラウザで管理するタイプのデータベース管理ツールです。PHPで実装されたツールであり、LAMPサーバー上で簡単にMySQLを管理できます。PhpMyAdminによりユーザーはLinuxのターミナルを使用せずにインポート、エクスポート、複雑なクエリの構築、表の作成や削除、高度な検索など多くのことができるようになったのです。WordPressとMySQLMySQL普及の背景にはCMSシステムの約60%、ウェブ全体の34%で使用されているWordPressの存在があることは間違いありません。Little氏により別のプロジェクトから派生して2003年に開発されました。PHPで実装されており、データベース管理システムにはMySQLが利用され、登場とともに急速に普及しました。WordPressとそのサーバースタックは間も無くオープンソースソフトウェアと同義で語られるまでに。DisplayWPはそれぞれのWordPressのバージョンに必要な最低限のMySQLを表した分かりやすい表を公開しています。MySQLの普及が進んだ大きな要因の一つはGPLのライセンスがあったことでしょう。Linuxとの互換性があるため、Linuxインストール時にデフォルトで含まれるようになりました。現在ではUbuntuにもデフォルトで含まれています。MySQLと関係データベースモデルの概要MySQLはRDBMS(関係データベース管理システム)とみなされています。コッドの12の規則で示されているとおり、関係データベースの歴史は1970年代に遡ります。簡単に言うとこのモデルは列と行で構成されるテーブルでデータを構造化します。それぞれの行はキー(SQL言語を使うための主キー)により個別に特定されます。この主キーは該当する行との関係性を定義するために他のテーブルと紐付けられます。関係データベースの外部キーの列は別のテーブルの主キーの列に紐づけられ、それぞれのテーブルの行との関係性を定義するのです。SQLで説明されているように、「主キーはテーブル内のそれぞれの行を個別に特定するデータが入力された一つ以上の列で構成」されます。主キーの列のデータはそれぞれ異なっている必要があり、空欄またはNull値は使用できません。関係データベースでは「テーブルには一つしか主キーが存在せず、その定義は必須」です。「外部キーは他のテーブルの主キーに紐づいた一つ以上の列です。外部キーを“指定”するための、特別なコード、構造、テーブルの定義はありません」MySQLの関係データベースモデルこのように関係データベースを使用すればデータを緻密に構造化し、複数のデータの関係性を定義することができるのです。上記の簡単な例では、二つのテーブルの列が紐付けられていて、それぞれの人物の所有する車を知ることができます。必要なロジックに従ってデータを検索することができます。異なる基準に基づきフィルターをかけたり、上記の例よりもより複雑なクエリを構築したりすることも可能です。Language)が広く採用されています。ABはサン・マイクロシステムズにより買収されました。OSを開発し、様々なコンピューター技術の開発に顕著な貢献をしてきた企業です。Wireが当時報じた内容は以下の通りです。ABを総額約10億ドルで買収することで正式契約に入りました」この買収がサン・マイクロシステムズの破綻を防ぐことができるほどの力をもたらさなかったことは、後々明らかになりますが、当時のMySQLの勢いをよく表している出来事としてご紹介しました。オラクルオラクルは最大のクローズドソースデータベースであるオラクルデータベースの開発・販売をする企業です。MySQLの直接的な競合であり、実質的に当時のMySQLが確立していたGPL、フリー、オープンソースのソフトウェアモデルとは正反対を行きました。Software)の世界では映画スタートレックのボーグの攻撃のような「不吉な」ものと捉えられました。あるユーザーがQuoraでこの出来事について次のように振り返っています。オラクルデータベースの利益が当時、全体の収益の80%以上(その維持に必要な基幹要員を考えるとそれ以上かもしれません)を占めていたオラクルにとって、MySQLは大きな脅威でした。MySQLは着実に市場のシェアを伸ばしました。何百万ドルものサイトライセンス契約を結んでいたフォーチュントップ50に名を連ねる大企業が、管理関係間接費が大幅に低いという理由で、オラクルからMySQLにデータベース(特に読み取り専用のデータベース)を乗り換えていったのです。実際に私もその手助けをしたことがあります。MySQLのコミュニティ内の多くの人は、オラクルの無料版を時代遅れと思わせるような新しい機能を追加しようと考えていました。MySQLは確実に成長しており、ツールは成熟を続け、Larry氏は恐れを感じたのです。そのため、オラクルはMySQLを自社のコントロール下に置き、コミュニティを散乱させ、自社の主力製品を守るためにMySQLを買収したのです。MySQLは当時オラクルのコアビジネスを脅かすほど人気になっていたため、これは論理的な決断だったと言えるでしょう。Thakur氏が述べているとおり、登場して間も無く開発者たちがSQLとMySQLが異なる存在であることを忘れてしまうほどに、MySQLは急速に人気になったのです。Widenius氏は自身のブログで印象的な主張を公開しました。Wideniusは、MySQLをオラクルの支配から守るために、至急手を貸して頂けるよう皆さんにお願いいたします。ご協力頂けなければ、いつ何時、MySQLがオラクルのものになってしまうか分かりません。欧州委員会(EC)へ手紙を書くことにより、この買収を防ぎ、オープンソースプロジェクトしてのMySQLの開発を守ることができます。この一ヶ月後、オープンソースコミュニティの落胆をよそに、買収は実施されてしまいました。ABを立ち上げ、MySQLを分岐し、MariaDBの基礎を築いていました。今でも、Monty氏の恐れの正当性について世間は疑問を抱いています。最悪のシナリオは実際には全く起こらなかったのです。オラクルはMySQLをただ潰すために買収したわけではなかったのです。一部にはMySQLは単にサン・マイクロシステムズの買収の巻き添えを食ってオラクルに買収されただけと主張する人もいます。2009年にデータベース市場に目を向けていた人たちには、心配するだけの理由がありました。兆候はそこにありました。MySQLのメインストレージエンジン、InnoDBの開発者であるフィンランドの企業は、2005年にオラクルに買収されました。その後、完全にオラクルに統合され、元の会社はなくなっています。囲い込みとでも言えるでしょう。5.1.38Betaが2009年10月にリリースされました。「MySQLのコードベースが永遠に無料であることを保証するために」MySQLより分岐したのです。分岐した当時、多くの人はオラクルの買収がMySQLを潰すことを目的とした敵意のあるものであると考えていました。この心配は結果的には、少なくとも部分的には、事実無根であったことがのちに証明されています。ABとMySQLのサービスを提供しているPerconaはオープン・データベース・アライアンスを設立。その目的は「MySQLに関係するコミュニティ、ビジネス、および技術エキスパートたちが直面している分裂と揺らぎに対するソリューションを提供し、MySQL関連の全ての開発とサービスを統合すること」でした。「MySQLやその派生コードなどのMySQLオープンソースデータベースやバイナリデータ、トレーニング、サポート、その他のMySQLコミュニティやパートナーのエコシステムを強化のための業界のハブとなる」というコンセプトのもと設立されました。振り返ると、これらの動きによって、MySQLは最悪のシナリオを辿らなくて済んだという可能性はあります。互換性MariaDBのMySQL(Widenius氏の娘の名前より名付けられた)からの分岐の大きな目的はMySQLへの将来的なアクセスと開発を保証することでした。そのため、MariaDBは全てのユーザーがシステム上でMySQLと入れ替えることのできる双対の入れ替え品とみなされています。MySQLはクライアント・サーバー・アプリケーションであり、サーバープログラムであるmysqld、クライアントであるmysql、mysqldumpなどの補助プログラムもMariaDM上でも同じ名前となっています。MySQLからMariaDBへの入れ替えは多くのアプリケーションにおいて、特にWordPressにおいてはシームレスな作業となります。人気のCMSツールやphpMyAdminなどのアプリケーションといった既存のソフトウェアでもそのまま使用することができ、データは一切の変更を加えることなくMySQLからMariaDBへエクスポートおよびインポートすることができます。MariaDBが掲げる目標はMySQLとの互換性を保つこと。MariaDBのウェブサイトによると、以下の通りです。データと表定義ファイルの互換性がある全てのクライアントAPIとプロトコルの互換性があるMySQLとMariaDBではファイル名、バイナリ、パスが同じポートとソケットが同じ全MySQLのコネクタ(PHP、Perl、Python、Javaなど)はMariaDBでも使用可能MySQLのクライアントパッケージはMariaDBでも同じように利用できる互換性の保証とオラクルによる新機能の追加やバグの修正を反映するために月次での統合が実施されています。分岐の背景MariaDBリリースの背景にはいくつかの理由がありました。オラクルが自社の利益の大きい主力製品を守るために競合であるMySQLを潰すのではないかという恐怖は大きな理由の一つだったでしょう。ユーザーは素晴らしい無料の製品を失うことになるところだったのですから!他にも、MySQLが無料でオープンソースであり続けるため、でもありました。現在、MariaDBは完全なGPLライセンスでその全ての機能が使用できます。一方で、MySQLは特別な機能は有料のライセンスに含まれるとする、デュアルライセンス方式を採用しています。スケーラビリティ、セキュリティ、信頼性、アップタイムを実現します。アプリケーションの開発、配置、管理におけるリスクとコストを削減し、複雑性を緩和します。この二つを比較すると、GPLライセンスで提供されているMariaDBは大変優位です。独自のコードベースであるため、オラクルはMariaDBのコードを利用したり、データベースの中に統合したりすることが法的にできないのです。Widenius氏は、「オラクルがクローズドソースのMySQLの拡張機能をリリースした場合、私たちもオープンソースのものを発表します」と断言しています。コミュニティに関して分岐の背景にあるもう一つの理由は、そのライセンスと同様に方向性の決定や開発もオープンである、コミュニティ主導のプロジェクト(WordPressと同じように)という性質を保持することにありました。コミット履歴を見ると、MySQLのコードは自社開発によるものであることが分かります。オラクルの開発者たちはコミュニティから時折寄せられる貢献度の高い提案に感謝を伝えることはありますが、それはMariaDBのオープンさや、かつてのMySQLとは程遠いものです。記事執筆時点で、MariaDBのサーバーレポジトリには18万6千件のコミット、370件以上のブランチ、200人以上のコントリビューターが存在します。MySQLの場合14万8千件のコミット、9件のブランチ、72人のコントリビューターとなっています。関する投票などの議論は一般公開されたメーリングリスト上で行われます。Discuss」というメーリングリストも存在します。Captains」は他の開発者たちにより提出されたパッチを反映する、信頼ある開発者のチームです。ローンチパッド上のチームページには次のように紹介されています。キャプテン”は、MariaDBメインツリーの書き換え権限を持つ信頼ある開発者たちです。ツリーにパッチを適用したい場合、maria-developersのリストに送信すると、キャプテンが提出者と共にパッチを確認、承認し、最終的にMariaDBの該当するツリーに適用します。MariaDBのこの動的な開発手順がオラクルの閉鎖的なものに対して優位に働いた事例がいくつかありました。foundationが設立されました。分岐の直後から、多くの元々のMySQL開発者がその場を離れ、MariaDBのプロジェクトに参加。Linux、Debian、OpenSuse、Slackware、FedoraなどのLinuxベンダーは—FreeBSDとOpenBSDの配布に加えて—デフォルトのRDBMS(関係データベース管理システム)をMariaDBに変更。UbuntuにもMariaDBが採用されました。一覧はこちらをご覧ください。Cloud、Tencent、IBM、Microsoft、Booking.comなどの企業はプラチナスポンサーとなりました。Foundationの役員にAutomattic社の人間がいることから、WordPress開発者がMariaDBを受け入れたことが明確に分かり、とても興味深い思いです。分岐から数年でMariaDBは劇的に発展しました。2012年に導入された新しい機能を鑑み、その飛躍を表現するためにMariaDBはMySQLと互換性のある今までの「5.*」バージョンから「10.0」まで、一気に番号を飛ばしてリリース。性能上の理由により、ウィキメディア財団は2013年に、WikipediaにMariaDBを利用することを発表。Googleでも同じ動きがあり、今ではドイツ銀行、DBS銀行、ナスダック、ベライゾン、クレイグスリストなども利用しています。MySQLのユーザーにはGitHub、アメリカ海軍、NASA、Tesla、Netflix、WeChat、Facebook、Zendesk、Twitter、Zappos、YouTube、Spotifyなどがあります。リリース以来、MySQL後継者への関心は、Googleトレンドが示すように堅調に高まっています。主な違いMariaDBはMySQLと完全な互換性を持つデータベースとして作られたものの、これからは違う道を歩んでいくことが予想されます。MariaDBとMySQLWidenius氏は自身の最後のブログで、MySQLのバージョン8.0に関して、次のような違いや注意事項について触れながらオラクルに対する祝辞を述べました。スレッドプール:Nginxサーバーが解決したApacheの抱えていた問題と同じように、MySQLではクライアント毎に接続スレッドが割り当てられ、パソコン内の全てのプログラムを起動するようなもので、単純に非効率でした。MariaDBバージョン5.5ではこの問題に対し独自の改善がなされています。10.3.3以降に搭載された独自の機能です。Columnsは表示されず、INSERT文においても値を割り当てる必要がありません。MariaDBでは時間データをマイクロ秒単位で記録します。TokuDBなどに対応しています。ColumnsStoreは、並行スケーリングにより何ペタバイトものデータを処理できるという意味で、性能面で興味深いストレージエンジンです。詳しくは公式ブログをご覧ください。データベース検索でも大幅な最適化が図られており、MariaDBでは必要なテーブルのみクエリを実行します。Shell(JavaスクリプトとPythonのスクレイピングが可能)、そして、mysql_native_passwordよりもセキュリティを強化したSHA-256認証プラグインなどがあります。MariaDBとMySQLの全体の対比表とMariaDBの強みについてはこちらをご覧ください。TweetまとめMySQLは現在世界最大の商用データベースベンダーの傘下にあります。多くの社員が休みなく働き、新しい機能の開発に取り組んでいるため、既に変化が見られるようになってきました。MySQLに新しい特別な機能が追加されると通常はMariaDBに反映されますが、必ずしもすぐに反映されるとは限らず、そもそも反映されるという保証はありません。言え、MariaDBの方が高い性能を誇る場面も多々あります。機敏な修正とアップデート、より安定したオープンソースの未来に加え、そして多少楽観的な視点を持てば、KinstaがMariaDBのファンであるだけではなく自社の高性能なサーバーにMariaDBを利用している理由がお分かりいただけるでしょう。23シェアTotal23101020100この記事が面白いと思った方は、KinstaのWordPressホスティングプラットフォームも大好きでしょう。ウェブサイトをスピードアップし、当社のベテランのWordPressチームからの24時間365日のサポートを是非ご利用ください。Cloudを使用したインフラストラクチャは、自動スケーリング、パフォーマンス、およびセキュリティに重点を置いています。Kinstaの魅力をご案内させてください。当社のプランをご確認ください。コメントをキャンセルコメントに関する方針:コメントが大好きで、ご意見をお寄せのコメントを書いていただきますと、非常に嬉しいです。すべてのコメントが手動でモデレートされ、スパム及びプロモーションとみなされるものが削除されます。コメント名前Eメール利用規約と個人情報保護方針に同意します。お勧めの記事WordPressウェブサイトのスピードアップについてこの長い記事は15年以上の経験からなるものです。初心者向けのアドバイス、高度な戦略など、今日でも実施できる様々な便利な内容を揃えています。