MySQL

MySQLとは

MySQL は、世界で最も広く使われているオープンソースのリレーショナルデータベース管理システム(RDBMS)です。現在は Oracle 社が開発を主導しています。WordPress をはじめ多くの Web サービスの裏側で動いており、「Webアプリのデータベースの定番」という立ち位置です。

[[リレーショナルデータベース]] の一種なので、データはテーブルで管理し、[[SQL]] で操作します。

特徴

  • 導入しやすい — 情報が豊富で、レンタルサーバーからクラウドまでどこでも動く。学習環境も作りやすい
  • 読み取り性能とレプリケーション — 参照の多い Web サービス向けに、複製サーバーを並べて読み取りを分散する構成([[レプリケーション]])が昔から得意
  • ストレージエンジン選択制 — データの保存方式を選べる。現在は ACID 対応の InnoDB(トランザクション対応エンジン)が標準
  • 互換ファミリーの存在 — MySQL から分岐した MariaDB(マリアDB)がほぼ互換の選択肢としてある

PostgreSQLとの比較

よく比較されるのが [[PostgreSQL]] です。どちらも実績十分で、現在は機能差が縮まっています。

MySQLPostgreSQL
性格シンプル・Web用途で実績豊富多機能・標準SQLへの準拠度が高い
得意分野読み取り中心のWebアプリ複雑な集計・地理情報・JSON活用
学習情報非常に多い多い

「どちらかが常に優れている」わけではなく、チームの経験と用途で選ぶのが実情です。

初学者向けポイント

  • 標準ポートは 3306番。接続には mysql コマンドや GUI ツール(MySQL Workbench など)を使う
  • 文字コードは utf8mb4 を選ぶ(古い utf8 は絵文字が入らない4バイト非対応のため)。照合順序や接続文字コードの揃え方は [[文字コードと文字化け]] にまとめている
  • クラウドでは AWS RDS / Aurora MySQL など、運用を任せられるマネージドサービスとして使うことが多い
  • まず SELECT / INSERT / UPDATE / DELETE と JOIN を MySQL で練習すれば、他の RDB にもほぼそのまま通用する
  • 中身を丸ごと SQL テキストへ書き出す mysqldump が標準で付属する — 別環境への移送や検証用データの用意はこれが基本([[データベースのダンプとリストア]])。ただし出力に DROP TABLE が含まれる点は把握しておく

関連技術とのつながり

  • [[リレーショナルデータベース]] — MySQL は RDB の代表的実装
  • [[SQL]] — MySQL の操作言語
  • [[PostgreSQL]] — 二大オープンソースRDBのもう一方
  • [[レプリケーション]] — MySQL の読み取り分散を支える機能
  • [[データベースのダンプとリストア]] — mysqldump が標準添付。論理バックアップの取り方
Q: MySQL の説明として正しいのはどれ?
- [x] 世界で最も広く使われているオープンソースの RDBMS
- [ ] ドキュメント指向の NoSQL データベース
- [ ] Microsoft が開発した商用専用データベース
解説: MySQL はオープンソースの RDBMS で、Web サービスの定番として広く使われています。

Q: 現在の MySQL の標準ストレージエンジンはどれ?
- [ ] MariaDB
- [x] InnoDB
- [ ] WordPress
解説: InnoDB がトランザクション(ACID)対応の標準エンジンです。MariaDB は MySQL から分岐した別の RDBMS です。

Q: MySQL の標準ポート番号はどれ?
- [ ] 5432
- [ ] 3389
- [x] 3306
解説: MySQL は3306番が標準です(5432は PostgreSQL、3389は RDP)。