MySQLによるデータベース操作に関する世界観です。データベースの世界観とSQLの世界観も参照のこと。
LinuxでWebサービスを構築する時に使われるのが、Linux + Apache + MySQL + Perl/PHP/PythonというLAMPスタック。
これはインターネット界では事実上の標準のようになっていて、MySQLは多くのPHPスクリプトなどから呼び出される形で使用する。
また、PHPアプリケーションによってはMySQLがなければ動かないものもある。たとえばWordPressやMediaWikiなどがそれに当たる。
もちろんPerl/CGIやPHPでデータファイルに書き出すこともできるが、MySQLを使うことでプログラムがより堅固かつ管理しやすくなる。
MySQLでは安全かつ高速に大量のデータを取り扱うことができる。
また、データの管理にデータベース管理システムを使うことで、全てのデータを一元管理しながらテーブルごとに分類することができる。たとえばとても大量のデータがあったとして、それらのデータを一元的な表で管理し、ひとつのSQLクエリで全てのデータベースからデータを検索できる。まさにこれが「データベース」である。
またMySQLが物理的なデータベースとWebサービスとの仲介役となり、実際のデータベースが巨大なサーバーであっても(なったとしても)スケーラブルに対応できる。
PHPからMySQLを操作する時は、SQL文とPDOオブジェクトを使う。
また、最近ではRuby on RailsのようなWebフレームワークも存在し、こうした場合はMVCのMに当たるModelでデータベースを操作する。この際にもMySQLを使用できる。
データベースを使う際のメリットとして、特にMySQLなどの軽量データベースに言えるのが、プログラムから操作しやすいということ。
ファイルだと、いちいちテキスト単位で解析しなければならない。データベースを使うことで、簡単にレコードを指定位置に挿入したり、検索したりできる。
また、頻繁に更新しても壊れないため、ネットワーク上でさまざまな人々によって頻繁に更新される掲示板のような用途に優れている。
(自分の書いたFacebookより。)
Perlのデータなどでは、以下のように<>を使って、
キャラクター名<>レベル<>経験値<>お金<>ヒットポイント<>攻撃力<>防御力<>装備アイテム
のようにデータをdatファイルなどにテキストで格納することがよくありますが、こうしたデータの格納にMySQLは適しています。
また、MySQLは安全なトランザクション処理を実装しているため、頻繁に更新しても壊れません。そのため、不特定多数から頻繁に更新されるWebサーバ上の掲示板スクリプトやSNSなどの用途にも、MySQLは適しています。
データーベースのMySQLについて。ApacheやPHPとともに使います。最近はMariaDBがフォークしたらしい。
MySQLを作っていたMySQL ABがSunによって買収され、SunをOracleが買収したことで、なんとMySQLをOracleが持っているという大変な事態が生じた。
今のところOracleの中でMySQLは仲良くやっているようだが、MySQLのオリジナルの作者でMySQL ABの創始者ミカエル・ウィデニウスにより、MySQLをforkして作られたのがMariaDBである。
多くのオープンソースプロジェクトでは、MariaDBを正式なMySQLの後継版と位置付けている。
MySQL(A.基本)を参照のこと。
MySQL(B.管理と設定)を参照のこと。
MySQLの情報を知りたい方は、gihyo.jpの以下の連載が参考になります。
2023.01.09
書籍