こんにちは、かつコーチです。
SQL基礎編では、SELECTやJOINといったSQL文法そのものを解説してきました。
今回からはMySQLシリーズとして、MySQLという製品ならではの特徴や設定に絞って解説していきます。
第1回は「MySQLとは何か」という基本から整理します。
MySQLとは?
世界で最も使われているOSS RDBMS
MySQLとは、Oracle社が開発・提供しているRDBMS(リレーショナルデータベース管理システム)です。
RDBMSとは、データを表(テーブル)の形で管理し、SQLという言語でデータを操作するデータベースソフトのことです。
MySQLはOSS(オープンソースソフトウェア)として無料で公開されており、個人の学習用途から大規模なWebサービスまで幅広く使われています。
WordPressやEC-CUBEといった有名なCMS・ECシステムの多くが、標準のデータベースとしてMySQLを採用しています。
私が担当してきたWeb制作案件でも、レンタルサーバーで提供されるデータベースはMySQLであることがほとんどで、実務での遭遇率はかなり高い製品です。
なぜMySQLを学ぶ必要があるのか
SQL自体はMySQL・PostgreSQL・SQL Serverなど、どのRDBMSでもほぼ共通です。
ただし、インストール方法や設定ファイルの書き方、文字コードの扱い、固有のデータ型といった部分は、製品ごとに違いがあります。
「SQLは書けるのに、いざ環境構築や設定でつまずく」という初心者の方を実務でも何人か見てきました。
SQL文法をすでに習得している前提で、MySQL固有の部分に絞って理解しておくことが、実務で困らないための近道になります。
MySQLの特徴
オープンソースで無料から使える
MySQLはGPL(GNU General Public License)というライセンスのもとで公開されており、個人・商用問わず無料で利用できます。
一方でOracle社は「MySQL Enterprise Edition」という有償版も提供しており、こちらはサポートや追加機能が付いた商用向けのプランです。
学習目的や小〜中規模のサービスであれば、無料のCommunity Editionで十分な機能が揃っています。
高速な読み取り性能
MySQLは特にSELECT文(読み取り処理)の性能に強みがあると言われています。
ブログやECサイトのように「読み取りが多く、書き込みは比較的少ない」タイプのアプリケーションと相性がよく、多くのWebサービスで採用されている理由の1つです。
ストレージエンジンという仕組みを持つ
MySQLにはストレージエンジンという、データの実際の保存方式を切り替えられる仕組みがあります。
現在のMySQLでは、トランザクションや外部キー制約に対応したInnoDBが標準のストレージエンジンです。
ストレージエンジンの違いについては、アーキテクチャ編で詳しく解説します。
MySQLと他のRDBMSとの違い
PostgreSQLとの比較
PostgreSQLもMySQLと並んでよく使われるOSS RDBMSです。
PostgreSQLは複雑な集計処理やSQL標準への準拠度で評価されることが多く、MySQLは手軽さと読み取り性能の高さで評価されることが多い、というのがおおまかな棲み分けです。
どちらを選ぶべきかは、案件の要件によって変わるため、単純な優劣ではありません。
両者の詳しい比較は、シリーズ後半で別記事として扱う予定です。
SQLiteとの違い
SQLiteは、サーバーを立てずにファイル1つでデータベースを扱える軽量なRDBMSです。
MySQLはサーバー・クライアント方式で動作し、複数人・複数アプリから同時にアクセスされることを前提に設計されています。
小規模なアプリの試作にはSQLiteが向いていますが、実際に運用するWebサービスの多くはMySQLのようなサーバー型のRDBMSを使います。
まとめ
この記事のポイント
- MySQLはOracle社が提供するOSSのRDBMSで、WordPressなど多くのシステムで採用されている
- SQL文法自体は共通だが、環境構築や設定、データ型はMySQL固有の部分が多い
- ストレージエンジンという仕組みで、データの保存方式を切り替えられる
- PostgreSQLやSQLiteとは、用途や強みの面で棲み分けがある
次に読むべき記事
MySQLの概要が分かったところで、次回は実際に自分のPCへMySQLをインストールする手順を解説します。
→ 次の記事:MySQLのインストールと初期設定
タグ: MySQL, 初心者向け, 入門
