Webアプリケーション開発で人気の高い「LAMP」構成では、データベース部分にMySQLを使います。LinuxをOSとし、ApacheをWebサーバに、MySQLをデータベースに、PHP/Perl/Pythonをアプリケーション開発言語とする構成です。
実際、フェイスブック、ツイッター、リンクトインなどの大規模なWebサイトでMySQLは採用されています。中にはフェイスブックのようにMySQLを独自に改良して使うところもあります。日本ではDeNA、グリー、コロプラなどが採用しています。
Webアプリケーションは基幹業務システムとは対称的なイメージがあるためか、「MySQLは基幹業務システムには向かないのでは」という発想になるのでしょう。
しかし、実際には導入事例が多くあります。例えばインドでは「Aadhaar」と呼ばれる国民ID番号管理システムでMySQLが使われています。生体情報も保有しており、管理されているIDは9億を超えています(2015年8月時点)。インドの全国民(約12.6億人、2015年時点)はまだカバーされていませんが、大規模であることに変わりはありません。日本でも、SCSKが経費精算や勤怠管理などの社員向け業務システムをMySQLで運用しています。こちらは従業員数1万人規模のシステムです。
もちろん導入事例を持って「基幹業務システムに向いている」とまでは言えませんが、「業務システムも(やろうと思えば)可能」とは言えそうです。
MySQLの開発元であったMySQL ABがサン・マイクロシステムズに買収され、そのサン・マイクロシステムズがオラクルに買収されたことで、当時は「これからMySQLはオープンソースらしさが失われるのではないか」という懸念もありました。オラクルは商用データベースの象徴のような存在なので、イメージの上でのギャップが大きかったためでしょう。
現状のMySQLはどうでしょうか。梶山氏は幾つかの事実を挙げています。「引き続きコミュニティー版はGPLで公開中」「ソースコードをGitHubに移設し、パッチはプルリクエストで可能に」「各LinuxディストリビューションやDocker用リポジトリを展開中」などです。
梶山氏によると、MySQLは「データが破損しやすい」「トランザクションをサポートしていない」「テーブルロックで同時実行性能が低い」「外部キーが使えない」といった指摘を受けることもあるそうです。
梶山氏は「これらは全て(古いバージョンでMySQLのデフォルトのストレージエンジンだった)MyISAMの特徴です。(MySQLの標準ストレージエンジンである)InnoDBを使ってください」と説明しています。
MySQLでは多くのストレージエンジンが生み出されており、用途に応じて選べるのが特徴です。それがかえって本体の特徴として混同されるケースがあるようです。MySQLを使うときは、本体に起因する特徴なのか、ストレージエンジンによるものなのか、注意して見分ける必要があります。
それにしても多くの誤解やイメージがあるようです。ウワサなのか事実なのか、間違えないようにしたいですね。
Copyright © ITmedia, Inc. All Rights Reserved.