My
SQLは、オープンソースのリレーショナルデータベース管理システム(RDBMS)であり、その名前は開発者の娘「My」と「
SQL」を組み合わせたものです。当初はスウェーデンの企業My
SQL ABによって開発され、後に
サン・マイクロシステムズ(現在のオラクル)に買収されました。
歴史
My
SQLは1995年に最初のバージョンがリリースされ、その後、多くの改良と機能追加を経て、現在に至ります。特に重要な出来事としては、以下のものがあります。
1995年: 最初のバージョンが内部リリース。
1998年: Windows版がリリース。
2008年: サン・マイクロシステムズがMySQL ABを買収。
2010年: オラクルが
サン・マイクロシステムズを買収。
買収後、My
SQLの創設者の一人であるミカエル・ウィデニウスは、オープンソースのMy
SQLプロジェクトをフォークしてMariaDBを設立しました。
特徴
My
SQLは、以下の特徴を持つRDBMSです。
オープンソース: GNU General Public License (GPL) の下で公開されており、無料で利用できます。
デュアルライセンス: GPLの他にプロプライエタリ
ライセンスでも利用可能です。
マルチプラットフォーム: Linux、Windows、macOSなど、多様なOSで動作します。
マルチストレージエンジン: 用途に応じて最適なストレージエンジンを選択できます。
トランザクションサポート: InnoDBストレージエンジンを使用することでACID準拠のトランザクションが可能です。
レプリケーション: マスタースレーブ方式の
レプリケーションを標準でサポートしています。
豊富な機能: ストアドプロシージャ、トリガー、ビューなどの高度な機能を備えています。
エディション
MySQLには、オープンソースのMySQL Community Serverと、プロプライエタリなMySQL Enterprise Serverの2つのエディションがあります。Enterprise Serverは、追加の拡張機能が搭載されていますが、基本的にはCommunity Serverと同じコードベースから構築されています。
ストレージエンジン
MySQLの大きな特徴の一つが、マルチストレージエンジンアーキテクチャです。これにより、データの保存とアクセス方法をアプリケーションのニーズに合わせて柔軟に選択できます。
InnoDB: ACID準拠の
トランザクションをサポートし、高い堅牢性と並列処理性能を持つ、最も広く利用されているストレージエンジンです。
MyISAM: 検索性能に優れ、かつては広く利用されていましたが、現在はInnoDBが主流となっています。
その他: Memory、Merge、Federated、Archive、CSV、Blackhole、NDB Clusterなどのストレージエンジンも利用できます。
My
SQLでの
トランザクション管理はストレージエンジンに依存しており、
InnoDBがACIDに準拠した
トランザクションをサポートしています。
その他の機能
サブクエリ
ストアドプロシージャ
ビュー
トリガー
レプリケーション
グループ
レプリケーション
ウィンドウ関数、共通表式(CTE)
MySQLは、GPLと商用ライセンスのデュアルライセンス方式で提供されています。GPL版は無料で利用できますが、GPLの条件に従う必要があります。商用ライセンス版は、GPLの制約を受けずに利用できます。
利用状況
MySQLは、世界中で最も人気のあるオープンソースのRDBMSの一つであり、Webアプリケーションを中心に広く利用されています。LAMP(Linux、Apache、MySQL、Perl/PHP/Python)スタックの主要なコンポーネントとしても知られています。
多くの大手ウェブサイトやアプリケーション(Facebook、Twitter、YouTube、WordPress、MediaWikiなど)で利用されています。日本でもPostgre[[SQL]]を上回り、最も普及しているオープンソースRDBMSとなっています。
プラットフォーム
MySQLは、以下のプラットフォームでサポートされています。
FreeBSD 11以降
Oracle Linux 6以降
macOS 10.12以降
Microsoft Windows 10
開発言語
MySQLには、C、C++、Eiffel、Smalltalk、Java、LISP、Perl、PHP、Python、Ruby、Tclなどの様々な言語からアクセスできます。また、ODBCインターフェースも提供されています。
日本語処理
MySQLは、sjis、cp932、utf8、utf8mb4、ujisなどの文字セットをサポートしており、日本語の文字を正しく扱うことができます。ただし、Windows環境で使用される拡張Shift_JISを正しく扱うためには、cp932を指定する必要があります。
管理ツール
MySQLを管理するためのツールには、以下のようなものがあります。
My
SQL Workbench
phpMyAdmin
Navicat for My
SQL
* Adminer
まとめ
My
SQLは、その柔軟性、機能性、そしてコミュニティの活発さから、多くの開発者にとって魅力的な選択肢となっています。オープンソースでありながら、商用利用にも対応できるデュアル
ライセンスを提供しており、幅広いニーズに対応できます。Webアプリケーションからエンタープライズシステムまで、様々な場面でその強力な性能を発揮しています。