MySQL

MySQLの最新ニュースをまとめて検索!

MySQL
MySQL AdministratorというLinux上のGUIフロントエンドツールで実行中
開発元 サン・マイクロシステムズ
最新版 5.1.41 (2009年11月5日)
最新評価版 5.4.3 (2009年10月6日)
対応OS クロスプラットフォーム
種別 RDBMS
ライセンス GPL または Commercial License
公式サイト www.mysql.com
  

MySQL(マイエスキューエル)は、RDBMSリレーショナルデータベースを管理、運用するためのシステム)の実装の一つである。

目次

[編集] 概要

オープンソースで開発されており、GNU GPLと商用ライセンスのデュアルライセンスとなっている。

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

世界で最も有名なオープンソース・データベースとして知られおり、市場シェアでは他のPostgreSQLなどのライバルを圧倒している[1]。ただし日本ではPostgreSQLとほぼ互角のシェアである[2]

データの保存とアクセスを行うストレージエンジンがSQLパーサとは分離独立しており、用途に応じたストレージエンジンを選択できる「マルチストレージエンジン」方式を採用している。特に MyISAM ストレージエンジンは検索の高速性に定評があり、更新よりも参照の頻度の高いWebアプリケーションなどで活用されている。

[編集] トランザクション

MyISAMでは、トランザクションをサポートしていない。バージョン3.23.34以降で組み込まれているInnoDBは、オープンソースソフトウェア企業のInnobase社が開発したストレージエンジンであり、トランザクションをサポートしている。InnoDBはメディア障害時の更新ログによるリカバリもサポートしている。

ただし、トランザクションの概念がなかったMyISAMベースのテーブルを検索する場合の高速性は、InnoDBの場合は即座に得ることはできず、チューニングが必要である。MySQL 5.0 では、InnoDBの方が、MyISAMよりも読み込みが速いことも多い。

[編集] その他の機能

副次問い合わせ(サブクエリ)は、バージョン4.1以降でサポートされている。バージョン5.0以降では、SQL99にストアドプロシージャビュートリガーが実装され、機能の面でも他のRDBMSに追いつきつつある。

その他、標準でマスタスレーブ方式のレプリケーション機能を備えており、堅牢なデータストレージの構築が比較的容易である。

[編集] ライセンス

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の日本法人)を吸収合併。
  • 2008年11月 - Version 5.1 プロダクションリリース。ベータ版は2005年11月にリリース。event scheduler, partitioning, plugin API, row-based replication, server log tables搭載。
  • 2009年4月 - Version 5.4 ベータ版公開。

[編集] 利用状況

世界的にはこのMySQLとFirebirdの方がPostgreSQLよりも多く使用されており、ウェブサイトの構築に用いるソフトウェア環境として、LAMP (Linux, Apache, MySQL, PHP) の略称が知られている。Yahoo!などの巨大なウェブサイトでの適用例も多く、WebアプリケーションのXOOPSWordPressも利用している。また、ウィキペディアのためのソフトウェアであるMediaWikiでもこのソフトウェアを使用している。他にも、社内用WebアプリケーションのサイボウズもMySQLを利用しており、MySQLを改造するため、有償契約をしている。

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

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

  • 欧米において、MySQLの広報が積極的だった。
  • MySQLの日本ユーザ会の立ち上げが遅れた。
  • 日本でのPHPのバイブル本である「PHP徹底攻略」と「PHP4徹底攻略」がPostgreSQLとの接続を想定して記述されていた。
  • PostgreSQLの開発に日本人であるSRAの石井達夫が関わっていた。彼は上記二冊の執筆も一部担当している。
  • Javaを開発するSun Microsystemsが、MySQLよりもPostgreSQLを推していた。
    • ただしSun MicrosystemsがMySQLを買収したことにより、今後はMySQLをより重視していく可能性が高い。
  • かつてのMySQLでUnicodeのサポートが不十分だった。
  • アプリケーションの頒布形態によってはGPLではなく商用ライセンスを選択しなければならないケースがある。

[編集] プラットフォーム

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#利点と欠点参照のこと。

なお、Windowsでは現在なおShift_JISがデフォルトだが、WebアプリケーションではUTF-8が主流となり、YahooやGoogleなど主なWebサイトもUTF-8となっている。

一方Webアプリケーションでは標準のutf8は、ODBCリンクしたMicrosoft Accessにおいて正しく表示できないことがある。この場合MyODBCのオプションキャラクタをsjisにしておけば、正しく入出力できる。ちなみにRuby on RailsCakePHPのデフォルトはutf8だが、データベース接続設定でencodingをutf8と明示的に使用宣言しておく必要がある。

MySQL5においてデフォルトの文字セットはutf8だが、入出力において不安定で、文字化けが起きることがあり、utf8で保存してあるデータが文字化けして表示されたり、utf8で入力したデータが文字化け状態で保存されたりする。このようなときは、サーバーに接続するとき、「mysql_pconnect」に続いて「mysql_select_db」でデータベースを指定した直後に「SET NAMES utf8」のクエリを送っておくと解決する。また「my.cnf」ファイル内にデフォルトキャラクタを設定しておく方法もある。

[編集] MySQLの管理ツール

[編集] 脚注

  1. ^ http://www-jp.mysql.com/why-mysql/marketshare/
  2. ^ http://www.ipa.go.jp/software/open/ossc/seika_0803.html

[編集] 関連項目

[編集] リンク

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

最終更新 2009年11月27日 (金) 23:13 (日時は個人設定で未設定ならばUTC)。
【MySQL】変更履歴

ご利用上の注意