MySQLとSQLiteの比較
MySQLをケナスつもりは全くありません。サイトの特性によってはSQLiteよりもMySQLの方がSOY CMSに向いている場合も当然あります。
普通にアフィリエイトするためのサイト運営やネットビジネスをする為のサイト運営では必ずしもMySQLが必要かと言えば全然そんなことはないと喜助は思っています。
- サイトへの訪問者がデータベースに書き込みを多用するサイトで日にユニークアクセスが数千件以上あるサイト
- 個人サイトで記事数が3,000件以上あり今後もサイトボリュームが増大する可能性が高いサイト
- 絶対的にCS(クライアント&サーバー)形態でDB運用する必要があるサイト
- 企業などでITポリシーの遵守としてファイルサーバーに機密情報を置くことが許されない場合
↑の様な環境の方がSOY CMSを使うのであれば迷わずMySQL版をインストールして使うのが良いと思います。
(でも企業だったらDBは普通、oracleかSQLServerかな?)
そうでないのならSQLiteは超!お勧めですよ♪
SQLiteの方が簡単
喜助がSOY CMSのSQLite版をお勧めする理由は以下です。
- FFTPなどのソフトでインストール先のディレクトリに解凍したフォルダ毎アップロードで配置が完了
- その後、ブラウザからユーザー名とパスワードを登録すれば直ぐに使い始められる
- 本体のバージョンアップ時も同様にFFFTPなどのソフトで丸ごとアップロードでOK
- 本体ファイルの容量も10MB前後と比較的軽い
- 安いレンタルサーバーでも手軽にマルチドメイン環境を構築できる
- DB本体がファイルサーバー上に配置されているのでバックアップも簡単に出来る
- DB本体がファイルサーバー上に配置されているので余計なDB接続によるパフォーマンスの劣化がない
だからこそ、喜助はSOY CMSを使うなら絶対にSQLite版をお勧めしています。
SQLiteは性能が良い!
SQLiteの性能が優れていることを一番簡単にインパクトが強い表現で書くならば、
Google様も「Gear」や「andrid」で採用している!
という事実が一番説得力があるのではないでしょうか?
どうですか?SQLite気になってきませんか(笑)
2010年4月9日追記
喜助が毎日使っているmojilla thunderbirdのメールデータやカレンダーデータをおさめるDBにもSQLiteが使われているのを確認!大切なメールデータをおさめるDBとして採用されているんですね(^_^)/
更に、もう3年くらい運用しているMT3.3aで作成したサイトはSQLiteで運用していますが未だに一度もトラブルはありません。
MySQLに比べると知名度は低いですが信頼性では決して負けていません!
まぁグーグルが使っているからっていうのは一種の権威付けであってやっぱり用途によってはSQLiteじゃ不向きな局面もあるでしょう。
SQLiteは設計がとてもシンプルで無駄がない処理をしているらしいです。
実際にMySQLと処理速度を比較した場合でもMySQLよりも高速で動くとSQLiteのホームページにも書いてあります。
また全ての処理にトランザクションが動く様にもなっているらしいです。
ですが不特定多数が同時にひとつのレコードにアクセスして編集する様なケースでは排他ロック制御が弱いです(*^_^*)
これはファイル型データベースですからどうしようもありません。
その昔、マイクロソフトのアクセスというデータベース(MDB)も排他ロックはメチャ弱かったですからね。
ただ、同じレコードに複数のユーザーが同時に書き込むことが想定されない普通のアフィリエイトサイトなどを運営するのであれば、
SQLiteはMySQLよりも高速にデータを読み込みますし、DB本体の容量も肥大化しません。とても小回りの聞く優秀なデータベースです。
SQLiteで作ったサイトを後にMySQLで運用できるの?
喜助はここが一番のポイントだと感じていました。
MovablTypeなんかはSQLiteとMySQLの相互変換スクリプトとかフリーでもあるみたいですが、SOY CMSの場合は現状そういったものはありません。
要は「SOY CMSで運営している[sql.db]を全て正常にSQLダンプ出きれば問題ない」と思っています。
- XAMPP用のSQLiteManegerを使ってSOY CMSの[soy.db]の内容を表示してみた
- Firefoxのアドインである「SQLiteManeger」を使ってSOY CMSの[soy.db]の内容を表示してみた
上記の1番は喜助の環境では[soy.db]は読み込めるのですが日本語が文字化けで使い物になりませんでした…
上記の2番はバッチリ全てのテーブルの情報が表示できました。しかも、全てのテーブルのダンプSQLをファイルの保存することも出来ました。
↑は当サイトの情報を表示させた画面のキャプチャーです。
↑は「Entryテーブル」の全ての情報をファイルに書き出すキャプチャーです。
同じ様に全てのテーブルの情報をSQLダンプファイルとしてファイルに書き出すことが可能です。
つまりこれを使えば、SOY CMSのMySQL版がインストールしてあるデータベースにSQLiteの情報をコンバートすることも可能なのです、たぶん。
と、思っていたらちょっと無理っぽいです(汗)。
やっぱりSQLiteとMySQLだと構文が違うのでそのままではエラーになりますね…←テスト用のphpMyAdminでSQLを実行してみました。
でも、直接SQLでMySQLに流し込めないですが、これだけでも確実に記事データやタイトルデータ、ラベルデータは取り出せます。
最低限のテキスト情報はバックアップできるんです!
ただ、これはSQLiteとMySQLの方言をちゃんと通訳してあげれば良いので勉強して方言解消ツールを製作してみたいと思っている喜助です。
今後、SQLiteからMySQLにDBを移行することもありうるのでちょっと真面目に取り組んでいきたいと思います。
