MySQL

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire
MySQL

開発元 サン・マイクロシステムズ
最新版 5.0.51b(Community Server) / 2007年12月6日
対応OS クロスプラットフォーム
種別 RDBMS
ライセンス GPL または Commercial License
公式サイト www.mysql.com
  

MySQL(マイエスキューエル)は、RDBMSリレーショナルデータベースを管理、運用するためのシステム)の実装の一つである。オープンソースで開発されており、GNU GPLと商用ライセンスのデュアルライセンスとなっている。

他の多くのオープンソースプロジェクトと異なり、MySQLはスウェーデンの単一の営利企業「MySQL AB」によって保持されていたが2008年2月26日にMySQL ABがサン・マイクロシステムズに買収されたことによって現在はサン・マイクロシステムズが保有している。またトレードマークおよび著作権もこの企業が所有している。

目次

概要

世界で最も有名なオープンソース・データベースとして知られている。 他のフリー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, Apache, MySQL, PHP) の略称が知られている。Yahoo!などの巨大なウェブサイトでの適用例も多く、WebアプリケーションのXOOPSも利用している。また、ウィキペディアのためのソフトウェアであるMediaWikiでもこのソフトウェアを使用している。他にも、社内用WebアプリケーションのサイボウズもMySQLを利用している(MySQLを改造するため、有償契約をしている)。

世界的な傾向に反し、日本ではPostgreSQLの適用例がMySQLを上回っている。2003年の時点で、オープンソース系のデータベースとして、日本では8割以上がPostgreSQLである。

その理由として、以下の理由が指摘されている。

  • 欧米において、MySQLの広報が積極的であった。
  • MySQLの日本ユーザ会の立ち上げが遅れた。
  • PHP4徹底攻略(通称マンモス本)がPostgreSQLとの接続を想定して記述されていた。
  • Javaを開発するSun Microsystemsが、MySQLよりもPostgreSQLを推していた(Sun MicrosystemsがMySQLを買収したことにより、今後はMySQLをより重視していく可能性が高い)
  • かつてのMySQLでUnicodeのサポートが不十分であった。
  • アプリケーションの頒布形態によってはGPLではなく商用ライセンスを選択しなければならないケースがある。

ライセンス

MySQL Community ServerはGPLライセンスの下で無償配布されている。そのため、企業等でこのMySQLを用いたソフトウエアを開発した場合には次のような事項を守る必要があると言われている。

  • MySQLを改造し、それを第三者に再頒布(販売・譲渡等)する場合は、開発したデータベースサーバもGPLで配布しなければならない。(ソフトウエアの購入者からソースコードを求められたら配布しなければならない)
  • MySQLを改造するわけではなく、プロセス間通信として、MySQLに接続し、利用する場合は、そのソフトウェア自体はGPL以外のライセンスで配布して良い。
  • 自社開発でMySQLを改造し、自社のWebサーバで利用する場合には、ソースコードの開示は行わなくて良い。GPLによるソースコードの開示を求める権利を有するのは、ソフトウエアを入手したものという解釈による。Webサービス利用者にはこれは当てはまらない。

MySQL Enterpriseは商用ソフトとして販売されている。そのため、GPLライセンスの制限が掛からず、このMySQLを用いたソフトウエアを第三者に配布する場合にソースコードを開示する必要性は無い。

歴史

  • 1995年5月23日 - 内部的に MySQL の最初のバージョンがリリース。
  • 1998年1月8日 - 最初の Windows 版がリリース。Windows 95 や NT 向け。
  • 2001年1月 - Version 3.23 プロダクションリリース。ベータ版は2000年6月にリリース。
  • 2003年3月 - Version 4.0 プロダクションリリース。ベータ版は2002年8月にリリース。union搭載。
  • 2004年10月 - Version 4.1 プロダクションリリース。ベータ版は2004年6月にリリース。R木B木、サブクエリー、prepared statements搭載。
  • 2005年10月 - Version 5.0 プロダクションリリース。ベータ版は2005年3月にリリース。cursors, stored procedures, triggers, views, XA transactions搭載。
  • 2008年2月6日 - サンマイクロシステムズがMySQL ABを買収。
  • 2008年7月1日 - サン・マイクロシステムズ株式会社がMySQL株式会社(MySQLの日本法人)を吸収合併。
  • Version 5.1。現在、pre-production。ベータ版は2005年11月にリリース。event scheduler, partitioning, plugin API, row-based replication, server log tables搭載。

プラットフォーム

MySQL 5.0は以下のプラットフォームでサポートされている。

開発言語

C, C++, Eiffel, Smalltalk, Java(JNI), Lisp, Perl, PHP, Python, Ruby, TclはMySQLのAPIを介してデータベースへアクセスできる。またODBCインターフェース (MyODBC) もサポートされている。MySQL自体はCおよびC++で開発されている。 埋め込みSQLによる開発はサポートされていない。

日本語処理

MySQL5においてsjis(Shift_JIS)、utf8(UTF-8)、ujis(EUC-JP)など各種文字セットを指定できる。パソコンでは一般的なsjis[要出典]は、Webページにおいて一部文字化けが発生することが知られている(Shift_JIS#利点と欠点)が、一方Webアプリケーションでは標準のutf8は、ODBCリンクしたMicrosoft Accessにおいて正しく表示できないことがある。この場合MyODBCのオプションキャラクタをsjisにしておけば、正しく入出力できる。ちなみにRuby on RailsCakePHPのデフォルトはutf8であるが、データベース接続設定でencodingをutf8と明示的に使用宣言しておく必要がある。

MySQLの管理ツール

関連項目

リンク

ウィキメディア・コモンズ

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net