database_server


SOY CMS/Shopでは、SQLite版とMySQL版が用意されています。

どのデータベースを利用してサイトを運営するか?の違いで、使える機能に大差はほぼないです。


使用する際にどちらが良いかよくわからないという質問を受けることが多々ありますので、私が普段使用しているおすすめの構成をお伝えします。


その前にですが、データベースの違いについて軽く。

SQLiteはファイルベースのデータベースで、ブログの投稿や注文があった際のデータの保管はサイトごとに生成されるファイルによって行われます。

ファイルベースのメリットは、データベースのコピーがファイルのコピーで済み、サーバの引っ越しの際もファイルを移動だけで良いです。

データの確認もファイルを読み込むだけなので簡単です。

※データベースを開いて確認するためにはSQLiteマネージャ等の専用のアプリが必要です。

※データベースのファイルが作成されるディレクトリについては下記の記事をご覧ください。

サイトを作成する - SOY CMSを使ってみよう


一方デメリットは、読み込みや書き込み時のメモリーの消費やキャッシュの使用に関する設定が行えず、データ量が増えすぎた場合のデータベースのチューニングが行えない事です。

SQLite - Wikipedia


MySQLはサーバ内にデータベースサーバを設置し、データの保管や取り出しはサーバに放り込まれます。


サーバベースのメリットは、サーバの増強やデータベースの設定により読み込みや書き込みを速くすることが出来ます。

一方デメリットは、サーバベースのため、データベースのコピーや引っ越しが大変です。

MySQL - Wikipedia


まとめると、SQLiteはお手軽だけど、データベースの使用量が増えた時に速くすることが出来ず、MySQLは速くすることはできるけど、お手軽ではないということになります。




SOY CMS/Shopを使用する際、データ量が大きくなりやすいものはMySQLで管理、大きくならないものであったり、表示速度は関係ないようなものであればSQLiteと使い分けると後々の管理が楽になります。


とあるショップサイトを運営することを仮定して考えてみます。

販促ブログ、お問い合わせフォームとメールマガジンも同時に運営するとして、

SOY CMSとSOY Shopで販促ブログ付きのネットショップを運営してみよう

SOY Shopの注文検索と顧客検索の結果をSOY Mailで利用する機能を追加しました


必要となるデータベースは

・SOY CMS全体の管理用のデータベース(アカウントや権限周り)

・ネットショップ用のデータベース

・ブログ(サイト)用のデータベース

・お問い合わせ用のデータベース

・メールマガジン用のデータベース


注文やお問い合わせで勝手に増えるアプリのデータベースをデータ量が肥大化するものとすると、ネットショップ用(SOY Shop)とお問い合わせ用(SOY Inquiry)が該当します。

この内、サイトの表示に影響を与えないものを外しておくと、お問い合わせ用のデータベースは外しても良いです。


これらを加味して、どのようなデータベースの設定にすれば良いかといえば、

・管理用のデータベース → SQLite

・ネットショップ用のデータベース → MySQL

・ブログ(サイト)用のデータベース → SQLite

・お問い合わせ用のデータベース → SQLite

・メールマガジン用のデータベース → SQLite

となり、いつもこの構成にしています。


ブログサイト用のデータベースもブログを大量に投稿したら肥大化するのでは?と思いますが、3000記事投稿しても、表示が遅くなった場合はサーバの増設のみで対応が可能です。

SOY CMSのサイトでPageSpeed Insightsのスコアが99になりました


注文は人気ショップになると、年間10万件注文とか余裕であるので、ブログ記事のデータの増え方と規模が異なります。


余談ですと、SQLiteのバックアップも簡単で、復元も簡単です。

SOY CMSのサイトのバックアップをDropboxで行う


関連記事

ネットショップの開発に関わっていて一番すごいと感じたサイトについて