MySQL
{{現在進行}} {{Infobox Software| 名称 = MySQL |ロゴ = |説明文 = |開発元 = [[MySQL AB]](買収完了を以て[[サン・マイクロシステムズ]]へ移行予定) |最新版 = 5.0.45(Community) |最新版発表日 = [[2007年]][[7月4日]] |対応OS = [[クロスプラットフォーム]] |種別 = [[リレーショナルデータベースマネージメントシステム|RDBMS]] |ライセンス = [[GPL]] または [http://www.mysql.com/company/legal/licensing/commercial-license.html Commercial License] |公式サイト = [http://www.mysql.com www.mysql.com] }} '''MySQL'''('''マイエスキューエル''')は、[[リレーショナルデータベースマネージメントシステム|RDBMS]]([[リレーショナルデータベース]]を管理、運用するためのシステム)の実装の一つである。[[オープンソース]]で開発されており、[[GNU General Public License|GNU GPL]]と商用ライセンスの[[デュアルライセンス]]となっている。 他の多くのオープンソースプロジェクトと異なり、MySQLは[[スウェーデン]]の単一の営利企業「[[MySQL AB]]」によって保持されている。またトレードマークおよび[[著作権]]もこの企業が所有している。 2008年1月16日、MySQL ABが[[サン・マイクロシステムズ]]に買収されることが発表された。買収手続きが完了後、同社の保有になった。 この余波を受けて、近年ではMariaDBというオープンソースRDBMSの注目が集まっている。 MariaDBはMySQL互換のDBでMySQLからフォークしているので、親和性が高い。 ただ、MySQLはオープンソースを維持しているので、MariaDBはまだそれほど普及していない。 == 概要 == 世界で最も有名なオープンソース・データベースとして知られている。 他のフリーRDBMSと比較して高速性に定評があり、特に更新よりも参照の頻度の高いアプリケーションに向くとされている。具体的にはWebアプリケーションの多くが該当する。データストレージエンジンはSQLエンジンとは分離独立しており、用途に応じた機能を持つストレージエンジンを選択できる「マルチストレージエンジン」方式となっている。 === トランザクション === <!-- もっとも標準なストレージエンジンである -->MyISAMでは、[[トランザクション]]をサポートしていない。 バージョン3.23.34以降で組み込まれているInnoDBは、オープンソースソフトウェア企業の[[Innobase]]社が開発したストレージエンジンであり、トランザクションをサポートしている。 InnoDBはメディア障害時の更新ログによるリカバリもサポートしている。 ただし、トランザクションの概念がなかったMyISAMベースのテーブルを検索する場合の高速性は、InnoDBの場合は簡単に即座に得ることはできなく、チューニングが必要である。 ただし、MySQL 5.0 では、InnoDBの方が、MyISAMよりも読み込みが速いことも多い。 === その他の機能 === 副次問い合わせ(サブクエリ)は、バージョン4.1以降でサポートされている。 バージョン5.0以降では、SQL99に[[ストアドプロシージャ]]、[[ビュー (データベース)|ビュー]]、[[トリガー]]が実装され、機能の面でも他のRDBMSに追いつきつつある。 その他、標準でマスタスレーブ方式のレプリケーション機能を備えており、堅牢なデータストレージの構築が比較的容易である。 === 普及 === 世界的にはこのMySQLと[[Firebird]]の方が[[PostgreSQL]]よりも多く使用されており、[[ウェブサイト]]の構築に用いる[[ソフトウェア]]環境として、[[LAMP]] ([[Linux|'''L'''inux]], [[Apache HTTP Server|'''A'''pache]], '''M'''ySQL, [[PHP Hypertext Preprocessor|'''P'''HP]]) の略称が知られている。[[Yahoo!]]などの巨大なウェブサイトでの適用例も多く、Webアプリケーションの[[XOOPS]]も利用している。また、[[ウィキペディア]]のためのソフトウェアである[[MediaWiki]]でもこのソフトウェアを使用している。他にも、社内用Webアプリケーションの[[サイボウズ]]もMySQLへの乗り換えを決めている。 世界的な傾向に反し、日本ではPostgreSQLの適用例がMySQLを上回っている。2003年の時点で、オープンソース系のデータベースとして、日本では8割以上がPostgreSQLである。 その理由として、以下の理由が指摘されている。 * 欧米において、MySQLの広報が積極的であった * MySQLの日本ユーザ会の立ち上げが遅れた * PHP4徹底攻略(通称マンモス本)がPostgreSQLとの接続を想定して記述されていた * Javaを開発する、Sun Microsystemsが MySQL よりも PostgreSQL を推している * かつてのMySQLで[[Unicode]]のサポートが不十分であった * アプリケーションの頒布形態によってはGPLではなく商用ライセンスを選択しなければならないケースがある ただし、商用ライセンスを取得するコストは[[Oracle]]の10分の1に満たない。 == プラットフォーム == MySQLは以下のような多くのプラットフォームでサポートされている。しかし、MySQLは[[Unix]]系プラットフォーム上でもっとも実力が発揮できる実装になっているため、なるべくUnix系プラットフォームで利用することが推奨されている。特に、MS Windows系の実装はDBアプリケーション開発者が利用する分には十分であるが、実際に運用を行うには安定していない。 * Unix系 ** [[AIX]] ** [[HP-UX]] ** SunOS/[[Solaris]] ** [[SCO]] OpenServer ** SCO UnixWare ** [[Tru64 UNIX]] ** [[BSDi]] ** [[FreeBSD]] ** [[NetBSD]] ** [[OpenBSD]] ** [[Linux]] ** [[Mac OS X]] ** [[シリコングラフィックス|SGI]] [[IRIX]] * MS Windows系 ** [[Microsoft Windows 95|Windows 95]] ** [[Microsoft Windows 98|Windows 98]] ** [[Microsoft Windows NT|Windows NT]] ** [[Microsoft Windows 2000|Windows 2000]] ** [[Microsoft Windows XP|Windows XP]] * その他 ** [[OpenVMS]] ** [[OS/2|OS/2 Warp]] == 開発言語 == [[C言語|C]], [[C++]], [[Eiffel]], [[Smalltalk]], [[Java]](JNI), [[LISP|Lisp]], [[Perl]], [[PHP Hypertext Preprocessor|PHP]], [[Python]], [[Ruby]], [[Tcl]]はMySQLの[[Application Programming Interface|API]]を介してデータベースへアクセスできる。また[[Open Database Connectivity|ODBC]]インターフェース (MyODBC) もサポートされている。MySQL自体はCおよびC++で開発されている。 [[SQL#埋め込みSQL|埋め込みSQL]]による開発はサポートされていない。 == 日本語処理 == MySQL5においてsjis([[Shift_JIS]])、utf8([[UTF-8]])、ujis([[EUC-JP]])など各種文字セットを指定できる。パソコンでは一般的なsjisは、Webページにおいて一部文字化けが発生することが知られている([[Shift_JIS#利点と欠点]])が、一方Webアプリケーションでは標準のutf8は、ODBCリンクした[[Microsoft Access]]において正しく表示できないことがある。この場合MyODBCのオプションキャラクタをsjisにしておけば、正しく入出力できる。ちなみに[[Ruby on Rails]]、[[CakePHP]]のデフォルトはutf8であるが、データベース接続設定でencodingをutf8と明示的に使用宣言しておく必要がある。 == 関連項目 == * [[Berkeley DB]] * [[MySQL Cluster]] * [[Firebird]] * [[HSQLDB]] * [[SQLite]] * [[mSQL]] * [[UnixODBC]] * [[MySQLWikiEngine]] * [[PostgreSQL]] * [[ウィキペディア|Wikipedia]]のためのソフトウェアである[[MediaWiki]]はMySQLを使用している。 * [[DBDesigner]] == リンク == * [http://www.mysql.com/ MySQL.com] * [http://www.mysql.gr.jp/ 日本MySQLユーザ会] * [http://dev.mysql.com/doc/mysql/ja/ MySQL リファレンスマニュアル] * [http://www.mysqldevelopment.com MySQL development] * [http://www.planetmysql.org MySQL Weblogs] * [http://www.db4free.net Free MySQL 5 provider] * [http://db4free.blogspot.com/ Markus Popp's blog] * [http://gilfster.blogspot.com/ Andrew Gilfrin's blog] * [http://rpbouman.blogspot.com/ Roland Bouman's blog] * [http://www.futhark.ch/mysql/ Beat Vontobel's blog] * [http://datacharmer.blogspot.com/ Giuseppe Maxia's blog] * [http://www.jpipes.com/ Jay Pipe's blog] * [http://mike.kruckenberg.com/ Mike Kruckenberg's blog] * [http://sheeri.com/ Sheeri Kritzer's blog] * [http://mysqldatabaseadministration.blogspot.com/ MySQL Database Administration Blog] * [http://www.mysql-partners-jp.biz/ 日本MySQLパートナー会] * [http://www.softagency.co.jp/products/mysql/license/ MySQL -- ライセンス早分かり] [[Category:データベースソフト]] [[Category:フリーソフトウェア]] [[Category:オープンソース]] {{Computer-stub}} {{wikipedia/Ja}}