MySQLは、Oracleが開発してサポートするオープンソースのSQLリレーショナルデータベース管理システムです。

上記は、「MySQLとはなんですか?」という質問に対する1文の短い回答ですが、もう少し分かりやすく説明させてください。

データベースは、データを簡単に使用したり取得したりできるように、そのデータをまとめて構造化したものです。WordPressサイトの場合、「データ」とは、ブログ投稿の内容、サイトに登録されているユーザーの情報、自動読み込みデータ、重要な設定・構成などです。

MySQLは、そのデータを保存したり管理したりする人気のあるシステムの一つにすぎませんが、WordPressサイトで特に人気のあるデータベースソリューションです。

参照文献:WordPressの「MySQL Server Has Gone Away」エラーの処理方法MySQL 1064エラーを修正する方法

では、もう少し詳しく見ていきましょう。

MySQLとは?(詳細説明)

MySQLはもともと1995年に発売されました。それ以来、所有者も管理者も数回変更しましたが、2010年に所有権がOracle社に移りました。現在Oracle社がMySQを管理していますが、それでもオープンソースソフトウェアです。つまり、自由に使用したり変更したりできます。

MySQLのロゴ

MySQLのロゴ(画像ソース:MySQL/Oracle

その名前は、共同設立者の娘の名前である「My」と、リレーショナルデータベースのデータにアクセスして管理できるStructured Query Languageの略称である「SQL」を組み合わせたものです。

MySQLの動作を理解するには、下記の2つの関連するものも理解することが重要です。

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

データベースへのデータの保存方法はさまざまなです。

MySQLは、リレーショナルデータベースと呼ばれるアプローチを使用しています。

リレーショナルデータベースを使用すると、すべてのデータを1つの大きなストレージにまとめるのではなく、データを複数のテーブルと呼ばれる個別のストレージに分割します。

たとえば、次の2種類の情報を保存したいとします。

上記のすべてのデータを1つの大きなファイルなどにまとめようとすると、次のような問題が発生します。

上記の問題を解決するには、リレーショナルデータベースでは、顧客用のテーブルと、注文用のテーブルが別途作成されます。

一方、「山田太郎さんのすべての注文を表示する」こともできます。リレーショナル(関係付けの)データベースですから。

キー」と呼ばれるものを使用すると、2つのテーブルのデータを連携して、必要に応じて異なるテーブルのデータを操作したり結合したりできるようになります。キーはお客様の名前ではないことに注意してください。代わりに、数値のID番号など、100%ユニークなものを使用します。

WordPressサイトのデータベースを見たことのある方なら、WordPressがリレーショナルモデルを使用しており、すべてのデータが個別のテーブルに分割されていることをご存じでしょう。

デフォルトでは、WordPressは12個のテーブルを使用しますが、多くのWordPressプラグインも独自のテーブルを追加します。たとえば、下の例のWordPressサイトのデータベースには44個のテーブルがあります。

MySQLのさまざまなテーブルの一例

MySQLのさまざまなテーブルの一例

リレーショナルデータベースの説明の最後になりますが、WordPressに固有の内容についてもご案内します。

WordPressはブログの投稿をwp_postsテーブルに保存し、ユーザー情報をwp_usersテーブルに保存します。ただし、2つのテーブルはキーで接続されているため、各ユーザーアカウントを、各ユーザーが作成したすべてのブログ投稿への関連付けが可能になります。

上記の機能はデータベースを見ると、次のようになります。

各投稿には、一意の識別番号であるpost_authorが割り当てられます(これがキーです)。

wp_postsテーブル

wp_postsテーブル

次に、その番号に該当するユーザーアカウントを知りたい場合は、wp_usersテーブルのIDを確認します。

wp_usersテーブル

wp_usersテーブル

キー(ID番号)は、すべての情報を結び付けるものです。キーがあるため、データが別々のテーブルに保存されていても、その関連付けがあります。

クライアントサーバーモデル

MySQLはリレーショナルデータベースシステムであるだけでなく、クライアントサーバーモデルと呼ばれるものも採用します。

サーバーは、データが実際に存在される場所です。ただし、このデータにアクセスするには、リクエストする必要があります。それがクライアントの出番です。

SQL(前述のプログラミング言語)を使用して、クライアントは、クライアントが必要とするデータの要求をデータベースサーバーに送信します。

たとえば、誰かがサイトのブログ投稿にアクセスした場合、WordPressサイトは複数のSQLリクエストをデータベースサーバーに送信し、ブログ投稿をその訪問者のWebブラウザーに配信するために必要なすべての情報を取得します。次を実施します。

WordPressサイトによって行われているデータベース要求の種類を正確に確認したい場合は、Query Monitorという素晴らしくて無料のプラグインを使用して、WordPressサイト(クライアント)とデータベースサーバー間のやり取りを把握できます。

Query Monitorプラグインは、MySQLサーバーに送信されたSQLクエリを表示する

Query Monitorプラグインは、MySQLサーバーに送信されたSQLクエリを表示する

もう1つのプレミアムソリューションはNew Relicです。当社のエンジニアはこのツールを頻繁に使用して、遅いMySQLクエリが原因であるWordPressサイトのパフォーマンス課題のトラブルシューティングを行います。

New Relicのデータベース画面には、遅いデータベーステーブルが表示されます。

WordPressサイトがデータベースサーバーにアクセスできない場合、「データベース接続の確立エラー」が発生します。

KinstaはMySQLではなくMariaDBを使用しています。違いは何でしょうか?

ここKinstaでは、MySQLではなく、MariaDBと呼ばれるデータベースシステムを使用しております。ただし、MySQLで見たすべての特徴がMariaDBにも適用されます。

実は、MariaDBはMySQLのフォークであり、MariaDBの主要開発者はMySQLの当初の設立者の1人です。 「フォーク」とは、MariaDB開発者が元のオープンソースのMySQLコードをベースにしてMariaDBを作成したことを意味します。

したがって、MariaDBは名前が異なりますが、MySQLと密接に関連しており、完全な「ドロップイン」置換機能を提供します。(つまり、予防策を講じる必要なく、MySQLからMariaDBにシームレスに切り替えることができます。)

一方、MariaDBはMySQLとの相互運用性を提供しますが、パフォーマンスも改善します。これは、「WordPressサイトを強化するために最高のパフォーマンスを目指すアーキテクチャを提供する」という私たちの企業哲学と一致します。

Info

Kinstaの各プランでは、MariaDBのパフォーマンスを向上させるための週一回の自動的なMySQLデータベース最適化を提供します。詳細については、当社のプラン一覧をご確認ください。

Kinsta uses MariaDB, a fork of MySQL, to ensure the best performance for your WordPress site.🚀Click to Tweet

(要約) MySQLとは?

MySQLはオープンソースのリレーショナルデータベース管理システムです。WordPressサイトの場合は、ブログの投稿、ユーザー、プラグインの情報などをすべて保存するのに役立ちます。

情報が別々の「テーブル」に保存され、「キー」で関連付けられているため、リレーショナル(関係付けの)データベースです。

WordPressサイトがその情報にアクセスする必要がある場合、SQLを使用してMySQLデータベースサーバーにリクエストを送信します。(これはクライアントサーバーモデルといいます。)

KinstaはMySQLではなくMariaDBを使用します。ただし、MariaDBはMySQLの共同設立者の1人によるMySQLのフォークであり、ドロップイン置換による相互運用性と、パフォーマンスの向上を提供しています。そのため、本記事で説明したコンセプトはすべてMariaDBにも適用されます。

Kinstaのお客様には、データベースへの直接アクセスも、phpMyAdminなどのデータベース管理ツールもご利用いただけます。


このチュートリアルが面白かった方なら、当社のサポートも大好きでしょう。Kinstaのすべてのホスティングプランには、ベテランのWordPress開発者とエンジニアによる24時間365日のサポートが付いています。フォーチュン500のお客様をサポートしているチームとチャットしませんか。当社のプランをご確認ください。