【Next Tokyo ’24】8/1 - 2 パシフィコ横浜にて開催!最新技術やトレンド、顧客事例、専門家によるセッションなど、ビジネス変革を加速させるヒントが満載です。

MySQL とは

MySQL は世界で最も人気のあるオープンソースのリレーショナル データベースの一つです。この人気は、e コマースサイト、ソーシャル メディア、および DrupalJoomlaMagentoWordPress などのアプリケーションで広く使用されていることによるものです。また、広く利用されている Linux-Apache-MySQL-PHP/Perl/Python(LAMP)ウェブ アプリケーション スタックにも欠かせない要素であり、多くの一般的なアプリケーション、ウェブサイト、サービスで利用されています。これは、DB-Engines で世界で 2 番目に人気のあるデータベースです。

Google Cloud のマネージド リレーショナル データベース、Cloud SQL for MySQL が運用コストの削減と効率化にどのように役立つかをご覧ください。

MySQL の定義

MySQL はオープンソースのリレーショナル データベース管理システムです。他のリレーショナル データベースと同様に、MySQL では行と列で構成されるテーブルにデータが保存されます。ユーザーは、一般に SQL と呼ばれる構造化クエリ言語を使用して、データの定義、操作、制御、クエリを行うことができます。MySQL はオープンソースであるため、25 年以上にわたりユーザーと緊密に連携して開発された数多くの機能が含まれています。

MySQL ソフトウェアはオープンソースです

MySQL はオープンソースです。つまり、GNU General Public License の条項に基づき、無料で使用できます。これは、誰でもソフトウェアのソースコードを自由に変更できることを意味します。これにより、MySQL は MariaDBPercona Server for MySQL のようなデータベースの他のバリアントにフォークすることになりました。MySQL は他の商用ライセンスの下でも利用できます。

リレーショナル データベース

MySQL は、リレーショナル データベース管理システム(RDBMS)と呼ばれるデータベースのカテゴリに属します。リレーショナル データベースとは、データを列と行の 1 つ以上のテーブル(「関係」)にあらかじめ格納している事前定義済みの関係でデータを整理して表示するための情報のコレクションで、さまざまなデータ構造が互いにどのように関係しているか簡単に確認して理解します。関係は、テーブル間の相互作用に基づいて確立された、異なるテーブル間の論理接続です。

履歴

MySQL は商用プログラミング言語 SQL の拡張機能として作成されました。SQL は、Edgar F. Codd の論文に記載された関係モデルをベースにしたものです。David Axmark、Allan Larsson、Michael Widenius によって設立されたスウェーデンの MySQL AB は、1995 年に MySQL を開発し、リリースしました。「MySQL」という名前は、Michael Wildenius の娘の名前「My」と、構造化クエリ言語(SQL)を指す「SQL」を組み合わせたものです。Sun Microsystems は 2008 年に MySQL AB を買収しました。2010 年の Sun Microsystems の買収以降、MySQL は現在 Oracle Corporation の所有となっています。

MySQL はもともと C および C++ プログラミング言語で開発されましたが、多くのオープンソースや独自のオペレーティング システムで利用できることから、長年にわたり多くのバージョンで人気を集めてきました。データベースの最新バージョンである MySQL バージョン 8.0 は 2018 年にリリースされました。

フォーク

MySQL プロジェクトはさまざまな理由で、何年にもわたって何度もフォークされ、もはや存在しないフォークもありました。残りのフォークされたプロジェクトの中で、最も人気のあるものは MariaDB と Percona Server for MySQL です。MariaDB は、Oracle の買収によって商用化が懸念された後も、MySQL をオープンソースとして維持するために、MySQL の創業者によってフォークされました。Percona Server for MySQL は、MySQL との密接な互換性を維持するための、MySQL のもう一つのオープンソース ディストリビューションです。MySQL のバージョンと、MySQL を取り巻くエコシステム全体に関する詳細をご確認ください。

ユーザーインターフェース

MySQL には、グラフィカル ユーザー インターフェース(GUI)またはコマンドライン インターフェース ツールからアクセスできます。

グラフィカル ユーザー インターフェース(GUI)

GUI は、ボタンとインタラクション ウィジェットで構成される統合環境を提供し、コマンドライン インターフェースでテキストベースのコマンドを使用するのではなく、アプリケーションのクエリや開発を視覚的にできるようにします。MySQL のオープンソース プロジェクトとサードパーティ インテグレータの両方が開発した MySQL GUI が数多くあります。その中でもよく使われているのが MySQL Workbench です。こちらも MySQL AB が開発したオープンソースです。よく知られている GUI には、ウェブ アプリケーション開発でよく使用される管理ツール phpMyAdmin や、MySQL 以外のデータベースの管理に使用できるオープンソースの管理ツール HeidiSQL があります。

コマンドライン

MySQL にはコマンドライン ツールからもアクセスできます。 これらのツールは MySQL ユーティリティとも呼ばれ、MySQL ディストリビューションに付属し、MySQL シェルや Percona ツールキットなどの他のコマンドライン インターフェース ツールでテキスト コマンドを使用して呼び出されます。

MySQL のデプロイ

ユーザーは、MySQL をオープンソース コードを使用して自分の物理マシンに手動でデプロイすることも、パッケージ化されたディストリビューションのいずれかをダウンロードしてデプロイすることもできます。MySQL は一般的に、単一のインスタンスまたはマシンにインストールされ、パフォーマンスを向上させる主な方法として垂直スケーリングが使用されます。ただし、MySQL は 1 つのプライマリ ノードと多数のセカンダリ ノードを使用して複製した構成で設定できます。セカンダリ ノードは、インスタンスに障害が発生した場合にプライマリに昇格させることができます。

MySQL をホストするもう 1 つの人気のある方法は、クラウド サービス プロバイダ(CSP)を介する方法です。クラウド サービス プロバイダの環境に MySQL をデプロイする方法はいくつかあります。1 つは、MySQL を仮想マシンに直接インストールして自己管理する方法です。もう 1 つは、クラウド サービス プロバイダのマネージド サービスを使用することです。これにより、MySQL の管理における多くの運用面に対応することで、MySQL の管理が大幅に簡素化されます。Google Cloud では、Cloud SQL の形式でマネージド サービスを提供しています。Cloud SQL for MySQL は、Google Cloud 上の MySQL リレーショナル データベースの設定、維持、運用、管理を支援するフルマネージド データベース サービスで、データベース管理者のトイルを軽減します。セキュリティ、高可用性、オブザーバビリティに関する付加価値サービスを提供することで、組織のイノベーションを支援します。MySQL の Cloud SQL インスタンスを設定する方法については、Cloud SQL for MySQL インスタンスの設定に関するベスト プラクティスの記事をご覧ください。オンプレミスの MySQL やクラウド サービス プロバイダの別のデータベースから Cloud SQL for MySQL への移行は、多くのツールやオプションが用意されており、非常に簡単かつシンプルに行えます。

Cloud SQL for MySQL のフルマネージド サービスとセルフマネージド MySQL の利点と相違点については、MySQL ホスティング オプションの記事をご覧ください。

MySQL のメリット

MySQL は高速で信頼性に優れ、スケーラブルで簡単に使用できます。MySQL は、他のアプリケーションやウェブサーバーなどとともに、デスクトップやノートパソコンで快適に実行できます。特に注意を払う必要はほとんどありません。マシン全体を MySQL 専用にする場合は、設定を調整して、利用可能なメモリ、CPU パワー、I/O 容量をすべて活用できます。MySQL は、ネットワークを接続したマシンのクラスタにスケールアップすることもできます。

MySQL を使用してデータを管理、保存するメリットは、他にも多数あります。

高可用性

MySQL における高可用性(HA)とは、障害なく長期間動作するデータベース エンジンの機能を指します。MySQL での HA の設定はかなり複雑になり、各ユーザーの特定の可用性要件と MySQL のデプロイ方法によって異なります。MySQL で HA を設定するには、データ レプリケーション、障害検出、フェイルオーバーとフェイルバックのメカニズム、フェイルオーバー後のセカンダリ インスタンスへのデータベース トラフィックのリダイレクトについて考慮する必要があります。Cloud SQL for MySQL を使用すると、高可用性を簡単に実現できます。詳しくは、Google Compute Engine 上の MySQL の高可用性または Cloud SQL for MySQL のフルマネージドの高可用性エクスペリエンスをご覧ください。

セキュリティ

MySQL のセキュリティに関する考慮事項は、さまざまな要因におよびます。データ保護に関して重要なものとして、データ冗長性メカニズムや一般的なセキュリティ プロセス(パスワードと権限、アクセス制御、ネットワーク セキュリティなど)によってデータを破損から保護する機能が挙げられます。Google Cloud のフルマネージド MySQL サービスである Cloud SQL for MySQL のセキュリティの詳細をご確認ください。

バックアップと復元

MySQL は、サードパーティ ツールを含む複数のメカニズムによるデータのバックアップと復元をサポートしています。MySQL をバックアップおよび復元するには、mysqldump ユーティリティを使用する、バイナリログを使用した増分バックアップ、レプリケーションを使用するなどの方法があります。Cloud SQL for MySQL には独自のバックアップ機能と復元機能があり、自動バックアップまたはオンデマンド バックアップが可能です。詳しくは、こちらをご覧ください。

柔軟性

全体的なデータベース構造の変更や既存のアプリケーションに影響を与えることなく、必要に応じてテーブルや関係の追加、更新、削除や、データ変更を簡単に行うことができます。

使いやすさ

SQL を使用して複雑なクエリを簡単に実行でき、初めて使用するユーザーがデータベースを直感的に操作できます。

パフォーマンス

パフォーマンスの最適化は、データベースの管理における重要な側面です。MySQL には多くの機能やチューニング オプションが用意されているため、高性能なアプリケーションを簡単に開発できます。これらの機能の詳細については、MySQL のパフォーマンス最適化のヒントをご覧ください。クエリの調整に関する別の記事で、パフォーマンスに関する具体的なベスト プラクティスも紹介されています。

MySQL は ACID(アトミック性、整合性、独立性、耐久性)プロパティをサポートしており、エラー、障害、その他の潜在的な障害に関係なく、データの有効性を確保します。

ユースケース

MySQL は汎用性が高いため、さまざまなユースケースで使用できます。以下にいくつかご紹介します。

ウェブ アプリケーション

MySQL は現在、オープンソースの LAMP スタックを使用して構築された多くのウェブ アプリケーションに不可欠な要素です。LAMP には、オペレーティング システムとして Linux、ウェブサーバーとして Apache、データベースとして MySQL、プログラミング言語として PHP、Python、または Perl が含まれています。LAMP を使用すると、デベロッパーは MySQL などのデータベースから最新の情報を取得する必要がある動的なウェブ アプリケーションを構築できます。情報には、ユーザー アカウント、ユーザーの詳細、プロダクト名、顧客記録、売上などが含まれます。SQL を使用して、ユーザーはデータベースに保存されている情報に簡単にアクセスして操作できます。詳しくは、LAMPLAMP を使用したウェブ アプリケーションの構築方法をご覧ください。

オンライン トランザクション処理

昨今の多くのアプリケーションでは、多数の人による大量のデータベース トランザクションを迅速に処理できる、MySQL などのデータベースを必要としています。MySQL のような OLTP データベースは、金融取引、旅行予約、記録保持など、多くの日常的なウェブ トランザクションの基盤となっています。オンライン トランザクション処理のユースケースをサポートするため、MySQL は ACID の原則、XML と JSON のサポート、ストアド プロシージャ、クラスタリング、パーティショニングをサポートしています。また、さまざまなストレージ エンジンから選択できるため、さまざまなテーブルタイプのデータを柔軟に統合できます。

e コマース

MySQL は、ユーザー、消費者情報、財務データを管理し、不正行為を防止するための傾向分析を必要とする e コマース アプリケーションでよく利用されているデータベースです。MySQL のようなリレーショナル データベースを使用して情報をテーブル(製品、顧客、注文)に整理し、必要に応じて別のテーブルを追加できます。Airbnb、Uber、Netflix、Booking.com、Spotify、eBay などの世界最大級の組織の一部は、MySQL を使用して e コマース アプリケーションを強化しています。MySQL をハイブリッド デプロイでデプロイして、e コマースのユースケースを完全にサポートすることもできます。MySQL は、構造化データ用のリレーショナル データベース、および商品の詳細やマーケティング情報などの非構造化データ用の非リレーショナル データベースとして使用できます。

SaaS アプリケーション

SaaS アプリケーションは通常 24 時間 365 日稼働しているため、最小限のダウンタイム、セキュリティ、ニーズの変化に応じたスケーリング機能が必要です。MySQL は、デプロイ、管理、スケーリングが容易なことから、SaaS アプリケーションを構築するための一般的なデータベース オプションとして台頭しています。オープンソースであるため、デベロッパーはプロプライエタリ ソフトウェアのライセンス料を支払うことなく、すぐに利用を開始できます。MySQL のグローバル コミュニティは活発で、追加機能を提供するプラグインの開発に貢献しています。

コンテンツ管理

MySQL は、WordPress や Drupal などのコンテンツ管理システム(CMS)向けの一般的なデータベースです。CMS は、投稿、ページ、画像、コメント、カテゴリ、タグ、カスタム フィールド、ユーザー、その他の設定を MySQL データベースに保存します。CMS には多くの場合、1 日に数千、場合によっては数百万ものアカウントがあるため、MySQL では大規模なテーブルや複数のクエリを同時に処理できます。ユーザーの増加に合わせて、MySQL はビジネスニーズに合わせて垂直方向または水平方向にスケーリングできます。

ソーシャル メディア

ソーシャル メディア アプリケーションの重要な側面は、ユーザー、グループ、コメントなどのさまざまなデータストア間のつながりの必要性です。このようなユースケースではソーシャル メディア アプリケーションにリレーショナル データベースが好まれるようになり、MySQL が最良の選択肢となります。注目すべき例には、Twitter、Pinterest、LinkedIn などがあります。

MySQL をお試しいただく際は、

Google Cloud は、MySQL のフルマネージド サービスである、Cloud SQL for MySQL を提供しています。

Cloud SQL for MySQL がイノベーションにどのように役立つかをご覧ください。 ドキュメントを見る

次のステップ

$300 分の無料クレジットと 20 以上の Always Free プロダクトを活用して、Google Cloud で構築を開始しましょう。

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
コンソール
  • Google Cloud プロダクト
  • 100 種類を超えるプロダクトをご用意しています。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。また、すべてのお客様に 25 以上のプロダクトを無料でご利用いただけます(毎月の使用量上限があります)。
Google Cloud