MENU

MySQL — Webサービスの定番リレーショナルデータベース

MySQL アイキャッチ
MySQL

MySQLは1995年にスウェーデンのMySQL ABが公開したオープンソースのリレーショナルデータベース管理システムです。「速くて手軽、無料で使える」という三拍子から、Wikipedia・YouTube・Facebook初期など世界の大規模Webサービスで採用され、LAMP(Linux/Apache/MySQL/PHP)構成の中核として一時代を築きました。現在はオラクル傘下にあり、フォークのMariaDBと並んで広く使われています。

目次

この記事の目次

  1. MySQLが選ばれてきた理由
  2. MariaDBとの分岐
  3. MySQLの実務でよく使う機能
  4. MySQLとPostgreSQLの違い
  5. まとめ

MySQLが選ばれてきた理由

MySQLが選ばれてきた理由

MySQLが普及した最大の理由は、無料で使える商用クオリティのRDBMSとしてWebサービスの黎明期に存在感を発揮したことです。Apache・PHPと組み合わせるLAMP構成は2000年代の標準的なWebアプリ構築スタイルとなり、「とりあえずMySQL」という空気感を作りました。

速度面ではトランザクション対応のInnoDBエンジンが標準になったことで業務利用にも耐えるようになり、レプリケーション機能も古くから備わっていたため、参照負荷の高いWebサービスとの相性が良かったのです。

MariaDBとの分岐

MariaDBとの分岐

MySQLはサンマイクロシステムズに買収された後、2010年にオラクルへ吸収されました。オラクルが商用Oracle Databaseを持っていることから「MySQLは廃れるのでは」という懸念が広がり、創業者のミカエル・ヴィデニウス自身がMariaDBという互換フォークを立ち上げます。

MariaDBは互換性を保ちながら独自機能を加えており、Red Hat系LinuxではMySQLパッケージの代わりにMariaDBが標準になっています。現状は両者とも積極的にメンテナンスされており、用途と社内の方針で選ぶ形です。

MySQLの実務でよく使う機能

MySQLの実務でよく使う機能

MySQLの実運用で必須になる知識は、InnoDBエンジン特有の挙動(行ロック、ギャップロック、外部キー)とマスタ/レプリカ構成のレプリケーション運用です。アクセスが増えてきたら参照クエリをレプリカに逃がすのが定番のスケール戦略になります。

性能調査ではEXPLAINで実行計画を読み、適切なインデックスを貼ることがほとんどの問題を解決します。「とりあえず全カラムにインデックス」は逆効果で、書き込みが遅くなる罠もあります。本番運用ではスロークエリログを定期的に眺める習慣をつけるとよいでしょう。

MySQLとPostgreSQLの違い

MySQLとPostgreSQLの違い

MySQLとPostgreSQLは長らく両雄として比較されてきました。ざっくり言えば「MySQLはWebサービスの動作データ用に手軽」「PostgreSQLは堅牢で機能豊富」という棲み分けで認識されていますが、ここ10年で両者の機能差はかなり詰まっています。

新規プロジェクトの選定では、すでにある社内ノウハウや採用するORMの相性で決めるのが現実的です。AWS Aurora、Google Cloud SQLなどのマネージドサービスでも両方とも標準提供されており、クラウド前提なら運用負荷の差はほぼありません。

まとめ

MySQLは「Webサービスの定番DB」という地位をいまも保ち続けています。選ぶ理由が明確でない限り、新規Webアプリの初期DBとしてはMySQL(あるいはMariaDB)は十分妥当な選択です。しっかり運用ノウハウを積めば、トラフィックが伸びてもスケールできる柔軟さが魅力です。

※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次