MySQL
MySQLとは
MySQL は、世界で最も広く使われているオープンソースのリレーショナルデータベース管理システム(RDBMS)です。現在は Oracle 社が開発を主導しています。WordPress をはじめ多くの Web サービスの裏側で動いており、「Webアプリのデータベースの定番」という立ち位置です。
[[リレーショナルデータベース]] の一種なので、データはテーブルで管理し、[[SQL]] で操作します。
特徴
- 導入しやすい — 情報が豊富で、レンタルサーバーからクラウドまでどこでも動く。学習環境も作りやすい
- 読み取り性能とレプリケーション — 参照の多い Web サービス向けに、複製サーバーを並べて読み取りを分散する構成([[レプリケーション]])が昔から得意
- ストレージエンジン選択制 — データの保存方式を選べる。現在は ACID 対応の InnoDB(トランザクション対応エンジン)が標準
- 互換ファミリーの存在 — MySQL から分岐した MariaDB(マリアDB)がほぼ互換の選択肢としてある
PostgreSQLとの比較
よく比較されるのが [[PostgreSQL]] です。どちらも実績十分で、現在は機能差が縮まっています。
| MySQL | PostgreSQL | |
|---|---|---|
| 性格 | シンプル・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)。