コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
Wikippe
検索
検索
表示
ログイン
個人用ツール
ログイン
MySQLのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
MySQL
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
要求した操作を行うことは許可されていません。
このページのソースの閲覧やコピーができます。
{{Infobox Software | 名称 = MySQL | ロゴ = | スクリーンショット = [[ファイル:MySQLadministrator1.png|300px]] | 説明文 = Linux上で実行中の[[GUI]][[フロントエンド]] MySQL Administrator | 開発者 = | 開発元 = [[オラクル (企業)|オラクル]]([[サン・マイクロシステムズ]]) | 初版 = {{Start date |1995|05|23}} | frequently updated = yes <!-- バージョンを更新するときはこのページを編集せず、番号部分をクリックしてその先のテンプレートで番号と日付を更新してください --> | プログラミング言語 = [[C言語|C]], [[C++]] | 対応OS = [[クロスプラットフォーム]] | エンジン = | 対応プラットフォーム = | サイズ = | 対応言語 = | サポート状況 = | 種別 = [[関係データベース管理システム|RDBMS]] | ライセンス = [[GNU General Public License|GPL]] または [http://www.mysql.com/about/legal/ Commercial License] | 公式サイト = [http://www-jp.mysql.com www-jp.mysql.com]<br/>[http://dev.mysql.com/ dev.mysql.com] }} '''MySQL'''(マイエスキューエル)は、[[オラクル_(企業)|オラクル]]が開発する[[リレーショナルデータベースマネージメントシステム|RDBMS]]([[リレーショナルデータベース]]を管理、運用するためのシステム)の実装の一つである。 == 概要 == [[オープンソース]]で開発されており、[[GNU General Public License|GNU GPL]]と商用ライセンスの[[デュアルライセンス]]となっている。 他の多くのオープンソースプロジェクトと異なり、[[スウェーデン]]の単一の営利企業「[[MySQL AB]]」によって保持されていた。[[2008年]][[2月26日]]にMySQL ABが[[サン・マイクロシステムズ]]に買収されたことによってサン・マイクロシステムズの所有となった。またトレードマークおよび[[著作権]]も[[サン・マイクロシステムズ]]が所有していた。[[2010年]][[1月27日]]、[[サン・マイクロシステムズ]]は[[オラクル (企業)|オラクル]]に買収された。 == シェア == 世界でもっとも普及しているオープンソース・データベースとして知られており<ref>http://db-engines.com/en/ranking</ref>、市場シェアでは[[PostgreSQL]]などの他のオープンソース・データベースを圧倒している<ref>http://www-jp.mysql.com/why-mysql/marketshare/</ref>。日本でも2009年になって[[PostgreSQL]]を超えるシェアを獲得している<ref name="ipa">http://www.ipa.go.jp/software/open/ossc/seika_1004.html</ref>。初期のMySQLで文字コードのサポートが悪かったのが影響したが、現在はEUC、SJIS、多言語面を含むUTF-8などをサポートしている。 {| class="wikitable" |+ 利用企業数の割合 ! 地域 !! MySQL !! PostgreSQL !! 調査機関 |- ! 世界 | 82.1% || 27.1% || 451 Group (2009年)<ref>[http://blogs.the451group.com/opensource/2009/12/04/451-group-survey-highlights-user-concerns-over-oracles-proposed-ownership-of-mysql/ 451 Group survey highlights user concerns over Oracle’s proposed ownership of MySQL]</ref> |- ! 日本 | 60.5% || 51.9% || IPA (2009年)<ref name="ipa"/> |} == ストレージエンジン == データの保存とアクセスを行うストレージエンジンがSQLパーサとは分離独立しており、用途に応じたストレージエンジンを選択できる「マルチストレージエンジン」方式を採用している。 バージョン3.23.34以降で組み込まれている[[InnoDB]]ストレージエンジンは、オープンソースソフトウェア企業の[[Innobase]]社が開発したストレージエンジンであり、高い堅牢性と[[MVCC]]による高い並列性を兼ね備えており、あらゆるアプリケーションに対応出来る人気のストレージエンジンとなっている。InnoDBはメディア障害時の更新ログによるリカバリもサポートしている。 また、InnoDB登場以前から搭載されている[[MyISAM]]ストレージエンジンも検索が高速であり、更新よりも参照の頻度の高いWebアプリケーションなどで活用されている。全文検索が利用できるのも、MyISAMの利点である。 以前はMyISAMの方が高速であると言われることが多かったが、InnoDBの性能改善が進んだことから、高速性を求めるためにMyISAMを利用するということも減ってきている。 == トランザクション == MySQLでは、[[トランザクション]]管理はストレージエンジンの役割であり、トランザクションを利用したければ対応したストレージエンジンを使用すればよい。 InnoDBは、[[ACID (コンピュータ科学)|ACID]]に準拠したトランザクションをサポートしている。一方MyISAMでは、トランザクションをサポートしていない。トランザクションが必要でないシーンは徐々に減ってきているので、最近MyISAMの出番も減りつつあるようである。 == その他の機能 == 副次問い合わせ(サブクエリ)は、バージョン4.1以降でサポートされている。バージョン5.0以降では、SQL99に[[ストアドプロシージャ]]、[[ビュー (データベース)|ビュー]]、[[データベーストリガ|トリガー]]が実装され、機能の面でも他のRDBMSに追いつきつつある。 その他、標準でマスタスレーブ方式の[[レプリケーション]]機能を備えており、堅牢なデータストレージの構築が比較的容易である。 == ライセンス == MySQLは [[GNU General Public License|GPL]] と[[コマーシャルライセンス]]のデュアルライセンス方式で提供されている<ref>[http://www-jp.mysql.com/about/legal/licensing/index.html MySQLのライセンスポリシー]</ref>。 基本的に、MySQLのサーバ本体とクライアントライブラリはGPLで提供される。このため、MySQLを改造し、それを再頒布する場合は、GPLに従う必要がある。 GPLのクライアントライブラリを利用してMySQLに接続するアプリケーションを開発した場合、そのアプリケーションもGPLライセンスとしなければならない可能性がある。ただし、クライアントライブラリに関しては、アプリケーションが既定のオープンソースライセンスで公開されるのであれば、GPL以外のオープンソースライセンスで再頒布することも可能である<ref>[http://www-jp.mysql.com/about/legal/licensing/foss-exception/ FOSS License Exception]</ref>。 サポートやツールが提供される有料サブスクリプションのMySQL Standard Edition, Enterprise Editionでは、コマーシャルライセンス版のバイナリが提供される。<ref>[http://www.mysql.com/products/ MySQL Editions]</ref>。コマーシャルライセンス版では、GPLによる制約は受けない。 == 歴史 == * 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 プロダクションリリース(5.0.15よりGA)。ベータ版は2005年3月にリリース。cursors, stored procedures, triggers, views, XA transactions搭載。 * 2008年2月6日 - サンマイクロシステムズがMySQL ABを買収。 * 2008年7月1日 - サン・マイクロシステムズ株式会社がMySQL株式会社(MySQLの日本法人)を吸収合併。 * 2008年11月 - Version 5.1 プロダクションリリース(5.1.30よりGA)。ベータ版は2005年11月にリリース。event scheduler, partitioning, plugin API, row-based replication, server log tables搭載。 * 2010年6月1日 - 日本オラクル株式会社がサン・マイクロシステムズ株式会社を統合。 * 2010年12月15日 - Version 5.5 プロダクションリリース(5.5.8よりGA)。デフォルトのストレージエンジンが InnoDB になり、マルチコアCPUでのパフォーマンスが改善した<ref>[http://dev.mysql.com/doc/refman/5.5/en/mysql-nutshell.html 1.5. What Is New in MySQL 5.5]</ref>。ベータ版(Version 5.4)は2009年4月にリリース。 * 2013年2月5日 - Version 5.6 プロダクションリリース(5.6.10よりGA)。InnoDB、NoSQLの機能を強化<ref>[http://www.oracle.com/us/corporate/press/1904335 Oracle>About>Press Room>Oracle Announces General Availability of MySQL 5.6]</ref><ref>[http://japanmediacentre.oracle.com/content/detail.aspx?ReleaseID=2794&NewsAreaId=2 Oracle Japan>Media centre home>ニュースリリース>MySQL5.6の一般提供開始を発表]</ref>。 == 利用状況 == 世界的にはこのMySQLの方が、ライバルである[[Firebird]]や[[PostgreSQL]]よりも多く使用されており、[[ウェブサイト]]の構築に用いる[[ソフトウェア]]環境として、[[LAMP]] ([[Linux|'''L'''inux]], [[Apache HTTP Server|'''A'''pache]], '''M'''ySQL, [[Perl|'''P'''erl]]・[[PHP Hypertext Preprocessor|'''P'''HP]]・[[Python|'''P'''ython]]) の略称が知られている。[[Yahoo!]]、[[Facebook]]、[[Twitter]]などの巨大なウェブサイトでの適用例も多く、Webアプリケーションの[[XOOPS]]、[[WordPress]]、[[SugarCRM]]などもバックエンドのデータベースとしてMySQLを利用している。また、[[ウィキペディア]]のためのソフトウェアである[[MediaWiki]]でもこのソフトウェアを使用している<ref>なお、ウィキペディア自体はMySQLから[[フォーク (ソフトウェア開発)|フォーク]]した[[MariaDB]]の利用へと移行している。</ref>。他にも、社内用Webアプリケーションの[[サイボウズ]]もMySQLを利用しており、MySQLを改造するため、有償契約をしている。 世界的な傾向に反し、以前日本ではPostgreSQLの適用例がMySQLを上回っていた。2003年の時点で、オープンソース系のデータベースとして、日本では8割以上がPostgreSQLだった。 その理由として、以下の理由が指摘されている。 * 欧米において、MySQLの広報が積極的だった。 * MySQLの日本ユーザ会の立ち上げが遅れた。 * 日本でのPHPのバイブル本である「PHP徹底攻略」と「PHP4徹底攻略<!--通称マンモス本-->」が[[PostgreSQL]]との接続を想定して記述されていた。 * PostgreSQLの開発に日本人である[[SRA]]の[[石井達夫]]が関わっていた。彼は上記二冊の執筆も一部担当している。 * Javaを開発する[[Sun Microsystems]]が、MySQLよりも[[PostgreSQL]]を推していた。 * かつてのMySQLで[[Unicode]]のサポートが不十分だった。 * アプリケーションの頒布形態によってはGPLではなく商用ライセンスを選択しなければならないケースがある。 だが、そのような状況は徐々に変遷し、2009年の段階ではMySQLのほうが[[PostgreSQL]]よりも多く利用されているという報告がある。<ref>http://ossipedia.ipa.go.jp/doc/201</ref><ref>http://www.itmedia.co.jp/enterprise/articles/1005/12/news011.html</ref> == プラットフォーム == MySQL 5.5は次のプラットフォームでサポートされている。<ref>http://www-jp.mysql.com/support/supportedplatforms/database.html</ref> * [[Solaris]] 10 以降(SPARC (64 bit), x86_64, x86) * [[FreeBSD]] 7 以降 * [[Linux]] * [[OS X|Mac OS X]] 10.5 以降 * [[Microsoft Windows XP]] 以降 MySQL 5.0は以下のプラットフォームでサポートされている。 * [[AIX]] * [[HP-UX]] * [[Solaris]] 8 以降 * [[SCO OpenServer]] * SCO [[UnixWare]] * [[Tru64 UNIX]] * [[BSD/OS]] * [[FreeBSD]] * [[NetBSD]] * [[OpenBSD]] * [[Linux]] * [[OS X|Mac OS X]] 10.3 以降 * [[Microsoft Windows 2000]] 以降 == 開発言語 == [[C言語|C]], [[C++]], [[Eiffel]], [[Smalltalk]], [[Java]](JNI), [[LISP|Lisp]], [[Perl]], [[PHP Hypertext Preprocessor|PHP]], [[Python]], [[Ruby]], [[Tcl]]はMySQLの[[アプリケーションプログラミングインタフェース|API]]を介してデータベースにアクセスできる。また[[Open Database Connectivity|ODBC]]インターフェース (MyODBC) もサポートされている。MySQL自体はCおよびC++で開発されている。[[SQL#埋め込みSQL|埋め込みSQL]]による開発はサポートされていないため、オープンソースプロジェクトのOpen ESQL等が利用される<ref>[http://sourceforge.net/projects/open-esql/ Open ESQL]</ref>。 == 日本語処理 == MySQL5は、sjis ([[Shift_JIS]])、cp932([[Microsoftコードページ932]])、utf8([[UTF-8]](3バイトまで))、utf8mb4([[UTF-8]](4バイトまで/MySQL5.5以降でサポート))、ujis ([[EUC-JP]]) といった文字セットを指定することで、日本語の文字を含む入出力を正しく扱うことができる。 sjisは、[[JIS X 0201]]および[[JIS X 0208]]に準じたものであるが、同じ「Shift_JIS」でも、Windows環境で使用される文字の一部を正しく扱えない場合がある。これは、Windowsでは、前記の規格以外の拡張文字を含む、[[Microsoftコードページ932|拡張されたShift_JIS]]を使用しているためである。これらの文字をMySQLで正しく扱うには、sjisではなくcp932を指定する。 たとえば、[[Microsoft Access]]からUTF-8で格納するテーブルにODBCリンク経由でアクセスする場合は、MyODBCの文字セット設定をcp932にしておけば、正しく入出力できる。 cp932がMySQLでサポートされたのは4.1.12からであり、それまでは、「sjisで格納し、sjisで入出力」するという設定を行い、入出力時の文字コード変換を避けることで、Windowsの拡張シフトJISで問題が起きないようにする、というのが、日本国内における「常識」であった。cp932のサポートの前にはすでにUnicodeがサポートされていたが、それらを積極的に使用する人はあまりいなかった。なぜなら、Unicodeで格納するテーブルに対してsjisで入出力を行うと、Windows環境において拡張文字が適切に変換されず文字化けが発生するため、それが「Unicode対応が不完全」「Unicodeはまだ使いものにならない」という評価を生む一因となっていたからである。 [[Ruby on Rails]]、[[CakePHP]]のデフォルトはutf8だが、データベース接続設定でencodingをutf8と明示的に使用宣言しておく必要がある。 == MySQLの管理ツール == * [http://www.mysql.com/products/workbench/ MySQL Workbench(5.2以降)] * [[phpMyAdmin]] * [http://www.phpmybackuppro.net/ phpMyBackupPro] * [http://www.navicat.jp/ Navicat for MySQL] * [http://www.mysql.com/products/tools/administrator/ MySQL Administrator] * [http://www.nucleonsoftware.com/ Database Master] * [http://www.sequelpro.com/ Sequel Pro] * [http://www.adminer.org/ Adminer] == 脚注 == {{脚注ヘルプ}}{{Reflist}} == 関連項目 == {{Portal|FLOSS|[[ファイル:FLOSS_logo.png|41px]]}} * [[MySQL Cluster]] ([[:en:MySQL Cluster]]) * [[MySQL Workbench]] ([[:en:MySQL Workbench]]) * ストレージエンジン ** [[MyISAM]] ([[:en:MyISAM]]) ** [[InnoDB]] ** [[Aria (ストレージエンジン)|Aria]](以前の名称はMaria) ** [[MySQL Archive]] ([[:en:MySQL Archive]]) ** [[MySQL Federated]] ([[:en:MySQL Federated]]) * アプリケーションとパッケージ ** [[MediaWiki]] - MySQLをバックエンドに用いることが可能である。 ** [[XAMPP]] * MySQLからフォークしたプロジェクト ** [[MariaDB]] ** [[Drizzle (database server)|Drizzle]] ([[:en:Drizzle (database server)|en:Drizzle]]) == リンク == {{Commonscat}} * [http://www-jp.mysql.com/ MySQL.com] * [http://www.mysql.gr.jp/ 日本MySQLユーザ会] * [http://dev.mysql.com/doc/mysql/ja/ MySQL リファレンスマニュアル] * [http://jp.planet.mysql.com/ Planet MySQL 日本語版(ブログ集約サイト)] * [http://www.mysqldevelopment.com MySQL development] * [http://www.planetmysql.org MySQL Weblogs] * [http://www.mysqlperformanceblog.com/ MySQL Performance Blog] * [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-jp.mysql.com/about/legal/licensing/faq.html ライセンスに関する FAQ] * [http://web.archive.org/20110323115445/am-gc.blogspot.com/2010/07/crear-una-base-de-datos-mysql.html どのようにデータベースのMySQL Workbenchを使用して作成する] - このチュートリアルではデータベースのMySQL Workbenchを使用して作成する方法について説明. {{Sun Microsystems}} [[Category:MySQL|*]] [[Category:データベース管理システム]] [[Category:オープンソース]] [[Category:サン・マイクロシステムズ]] [[Category:オラクル]]
このページで使用されているテンプレート:
テンプレート:Commonscat
(
ソースを閲覧
)
テンプレート:Infobox Software
(
ソースを閲覧
)
テンプレート:Portal
(
ソースを閲覧
)
テンプレート:Reflist
(
ソースを閲覧
)
テンプレート:Sun Microsystems
(
ソースを閲覧
)
テンプレート:脚注ヘルプ
(
ソースを閲覧
)
MySQL
に戻る。
検索
検索
MySQLのソースを表示
話題を追加