GPLと商用ライセンスのデュアルライセンスとなっている。AB」によって維持されていた。サン・マイクロシステムズに買収されたことをもって、サン・マイクロシステムズの所有となった。その後、2010年1月27日、サン・マイクロシステムズがオラクルに買収されたことにより、商標権ならびに著作権もオラクルに移管された。シェア[編集]世界でもっとも普及しているオープンソースのRDBMSとして知られており[2]、市場シェアではPostgreSQLなどの他のオープンソース・データベースを圧倒している[3]。日本でも2009年になってPostgreSQLを超えるシェアを獲得している[4]。初期のMySQLで文字コードのサポートが悪かったのが影響したが、現在はEUC、SJIS、多言語面を含むUTF-8などをサポートしている。(2009年)[4]ストレージエンジン[編集]データの保存とアクセスを行うストレージエンジンがSQLパーサとは分離独立しており、用途に応じたストレージエンジンを選択できる「マルチストレージエンジン」方式を採用している。バージョン3.23.34以降で組み込まれているInnoDBストレージエンジンは、オープンソースソフトウェア企業のInnobase社が開発したストレージエンジンであり、高い堅牢性とMVCCによる高い並列性を兼ね備えており、あらゆるアプリケーションに対応出来る人気のストレージエンジンとなっている。InnoDBはMySQL本体やOSのクラッシュからの復旧(クラッシュリカバリ)をサポートしている。InnoDB登場以前から搭載されているMyISAMストレージエンジンも検索が高速であり、更新よりも参照の頻度の高いWebアプリケーションなどで活用されている。全文検索や空間検索が利用できるのも、MyISAMの利点であったが最近のMySQLではInnoDBにおいてもそれらは利用できるようになっている。以前はMyISAMの方が高速であったり多機能であると言われることが多かったが、InnoDBの性能・機能改善が進んだことから、高速性や多機能性を求めるためにMyISAMを利用するということも減ってきている。トランザクション[編集]MySQLでは、トランザクション管理はストレージエンジンの役割であり、トランザクションを利用したければ対応したストレージエンジンを使用すればよい。InnoDBは、ACIDに準拠したトランザクションをサポートしている。MyISAMでは、トランザクションをサポートしていない。トランザクションが必要でないシーンは徐々に減ってきているので、最近MyISAMの出番も減りつつあるようである。その他の機能[編集]副次問い合わせ(サブクエリ)は、バージョン4.1以降でサポートされている。バージョン5.0以降では、SQL99にストアドプロシージャ、ビュー、トリガーが実装され、機能の面でも他のRDBMSに追いつきつつある。Expression)が実装された。その他、標準でマスタスレーブ方式のレプリケーション機能を備えており、堅牢なデータストレージの構築が比較的容易である。8.xではグループレプリケーションの機能をプラグインでサポートしている。Cluster構成も可能になった。コマーシャルライセンスのデュアルライセンス方式で提供されている[6]。基本的に、MySQLのサーバ本体とクライアントライブラリはGPLで提供される。このため、MySQLを改造し、それを再頒布する場合は、GPLに従う必要がある。GPLのクライアントライブラリを利用してMySQLに接続するアプリケーションを開発した場合、そのアプリケーションもGPLライセンスとしなければならない可能性がある。クライアントライブラリに関しては、アプリケーションが既定のオープンソースライセンスで公開されるのであれば、GPL以外のオープンソースライセンスで再頒布することも可能である[7]。Editionでは、コマーシャルライセンス版のバイナリが提供される。コマーシャルライセンス版では、GPLによる制約は受けない。内部的にMySQLの最初のバージョンがリリース。最初のWindows版がリリース。プロダクションリリース。ベータ版は2000年6月にリリース。プロダクションリリース。ベータ版は2002年8月にリリース。プロダクションリリース。ベータ版は2004年6月にリリース。statements搭載。プロダクションリリース(5.0.15よりGA)。ベータ版は2005年3月にリリース。transactions搭載。サン・マイクロシステムズ株式会社がMySQL株式会社(MySQLの日本法人)を吸収合併。プロダクションリリース(5.1.30よりGA)。ベータ版は2005年11月にリリース。オラクルがサン・マイクロシステムズを買収。プロダクションリリース(5.5.8よりGA)。なり、マルチコアCPUでのパフォーマンスが改善した[9]。2009年4月にリリース。プロダクションリリース(5.6.10よりGA)。InnoDB、NoSQLの機能を強化[10][11]。プロダクションリリース(5.7.9よりGA)。プロダクションリリース(8.0.11よりGA)[12]。Yahoo!、Facebook、Twitterなどの巨大なウェブサイトでの適用例も多く、WebアプリケーションのXOOPS、WordPress、SugarCRMなどCMSも、バックエンドのデータベースとしてMySQLを利用している。ウィキペディアのためのソフトウェアであるMediaWikiでもこのソフトウェアを使用している[13]。他にも、社内用WebアプリケーションのサイボウズもMySQLを利用しており、MySQLを改造するため、有償契約をしている。世界的な傾向に反し、以前の日本では、PostgreSQLの適用例がMySQLを上回っていた。2003年(平成15年)の時点で、オープンソース系のデータベースとして、日本では8割以上がPostgreSQLだった。その理由として、以下の理由が指摘されている。欧米において、MySQLの広報が積極的だった。MySQLの日本ユーザ会の立ち上げが遅れた。日本でのPHPの本である「PHP徹底攻略」と「PHP4徹底攻略」がPostgreSQLとの接続を想定して記述されていた。PostgreSQLの開発に日本人であるSRAの石井達夫が関わっていた。彼は上記二冊の執筆も一部担当している。Javaを開発するサン・マイクロシステムズが、MySQLよりもPostgreSQLを推していた。MySQLでUnicodeのサポートが不十分だった。アプリケーションの頒布形態によっては、GPLではなく商用ライセンスを選択しなければならないケースがある。そのような状況は徐々に変遷し、2009年(平成21年)の段階では、MySQLのほうがPostgreSQLよりも多く利用されているという報告がある[14][15]。8.0は次のプラットフォームでサポートされている。TclはMySQLのAPIを介してデータベースにアクセスできる。MySQL自体はCおよびC++で開発されている。ESQL等が利用される[17]。いった文字セットを指定することで、日本語の文字を含む入出力を正しく扱うことができる。0208に準じたものであるが、同じ「Shift_JIS」でも、Windows環境で使用される文字の一部を正しく扱えない場合がある。これは、Windowsでは、前記の規格以外の拡張文字を含む、拡張されたShift_JISを使用しているためである。これらの文字をMySQLで正しく扱うには、sjisではなくcp932を指定する。同様の理由でujisではなくeucjpmsを指定すべきである。AccessからUTF-8で格納するテーブルにODBCリンク経由でアクセスする場合は、MyODBCの文字セット設定をcp932にしておけば、正しく入出力できる。cp932がMySQLでサポートされたのは4.1.12からであり、それまでは、「sjisで格納し、sjisで入出力」するという設定を行い、入出力時の文字コード変換を避けることで、Windowsの拡張シフトJISで問題が起きないようにする、というのが、日本国内における「常識」であった。cp932のサポートの前にはすでにUnicodeがサポートされていたが、それらを積極的に使用する人はあまりいなかった。Unicodeで格納するテーブルに対してsjisで入出力を行うと、Windows環境において拡張文字が適切に変換されず文字化けが発生するため、それが「Unicode対応が不完全」「Unicodeはまだ使いものにならない」という評価を生む一因となっていたからである。Rails、CakePHPのデフォルトはutf8だが、データベース接続設定でencodingをutf8と明示的に使用宣言しておく必要がある。2020年1月19日閲覧。ウィキペディア自体はMySQLからフォークしたMariaDBの利用へと移行している。MySQLをバックエンドに用いることが可能である。(en:Drizzle)外部リンク[編集]ウィキメディア・コモンズには、MySQLに関連するカテゴリがあります。(日時は個人設定で未設定ならばUTC)。表示-継承ライセンスの下で利用可能です。追加の条件が適用される場合があります。詳細は利用規約を参照してください。Cookieに関する声明モバイルビュ。