sqliteとmysqlの違いとメリットデメリット | 在宅ネットでコツコツお金を稼ぐ

私が運営している別サイトでは、mysqlを使っています。 当サイト「在宅ネットでコツコツお金を稼ぐ」では、 sqliteを使ってみたくて、実験的に利用しています。

当サイトの場合は、収入の管理をするために、ひとつのデータベース、 あとは、コラムの記事を管理をするために、ひとつのデータベースを使っています。

収入の管理のデータベースは、 例えば、A8.net では、いくら振り込まれた、 というのをデータベース化しておいて、いくらぐらい稼げたのかを記録しておくために利用しようという計画です。

今回は、sqliteを使ってみて、感じたことを書いておきます。

sqliteを導入する時は、凡ミスで苦労したものの、 使えるようになったら、とてもスムーズでした。

sqliteの方がmysqlよりも記述が簡単。

sqliteの方がmysqlよりも、phpの記述が簡単です。 mysqlだと、一回一回パスワードを設定しますが、 sqliteの場合は、それなしで、簡単にデータベースに接続できます。

mysqlもデータベースの接続などの処理を関数にしておけばよいのかもしれませんが、 そのような手間もかからない、sqliteは特に簡単だと思いました。

かなり軽快に動く

sqliteは意外と軽快に動くと感じています。 サクサク動いてくれるのが気持ち良いです。 もちろん、mysqlも高速ですが、 sqliteの軽快さもなかなかのものだと思いました。

データの件数が、数十万件以上というようなデータベースの場合は、 mysqlが良いようですが、少ない件数のデータしか使用しない場合は、 sqliteでも、しっかりとした速度が出るようです。

インストールしなくてもよい

レンタルサーバーでは、mysqlの使用数というのは決められています。 もちろん、テーブルで分ければよいのかもしれませんが、 データベースの数というのは気になるところです。

sqliteはサーバーにインストールしなくても、 php5以上のバージョンなら使えるので、とても簡単です。

レンタルサーバーで、sqlite使用可となっているサーバーなら、 sqliteを簡単に使うことができます。

データベースファイルの扱いが簡単

サーバーの側で作成したデータベースファイルをダウンロードして、 ローカル環境で操作して、また、サーバーにアップロードする、というように、 データベースファイルの扱いが簡単にできるのも、sqliteの特徴です。

私が使ってみて、この簡単さは意外と大きかったです。

mysqlの場合は、通常のレンタルサーバーだと、 インポートやエクスポートは、自分でコマンド文を打って、 データを出すということが多いのではないでしょうか。

ちょっと面倒に感じます。

sqliteの場合は、データベースファイルをただ、 ダウンロードすれば、エクスポートしたことになりますし、 そのデータベースを読み込めば、インポートしたことになるので、 とても簡単です。

mysqlのデータベースファイル

私は、ひとつ、VPSでmysqlを使っていますが、 mysqlの場合の、データベースファイルはどうなっているのでしょうか。

Windowsだと、mysqlの設定ファイルは、

my.ini

借りているサーバー、linux系の設定ファイルは、

my.cnf

となります。

データファイルの場所は、その設定ファイルに書いてある場所となるようです。 Windowsの場合は、

#Path to the database root

datadir="d:/MySQL/MySQL Server 5.5/data/"

私が借りているVPSでは、 mysqlをソースファイルからインストールしたのですが、

/usr/local/mysql/var/フォルダに、

データベース名のフォルダが出来ていて、 そこに入っていました。

テーブル名.frm

テーブル名.MYD

テーブル名.MYI

というこのようなファイルがデータベースのデータファイルのようです。

これをダウンロードして、ローカルでそのまま上書きすると、 動くのかもしれませんが、試したことはありません。 テーブルごとに、3つずつファイルができるようです。

sqliteのデメリット。WordPressに正式対応していない

定番のブログ作成ツールの、WordPressはデータベースを使用しますが、 sqliteは正式に対応していないとのことです。 sqliteでも動かすツールがあるようですが、 パーツが使えないなどのエラーもあるようです。

今のところ、WordPressを使いたい場合は、 mysqlで使うのが良いのではないかと思います。

sqliteのデメリット。データベースファイルのセキュリティー

sqliteを使ってみて、私が唯一、不安に思ったのが、 データベースファイルの扱いです。

そのファイルのurlを入力すると、 サイトから簡単にダウンロードできてしまいます。

もちろん、個人のサイトなので、データベースファイルに、 個人情報などは入っていないので、大丈夫なのですが、 データベースファイルが丸腰なのは、少し心配になってしまいます。

sqliteのデータベースファイルを守るには、 ふたつの方法があるようです。

・データベースファイルをルートドキュメント以外に置く

・.htaccessでアクセス制限をする

というものです。

最初の、 データベースファイルをルートドキュメント以外に置く という方法は、例えば、VPSですと、 ルートドキュメント以外のフォルダに置くことで、 他の人はアクセスできません。

これでデータベースファイルは安全ですが、 私が使っているロリポップ! など、一般的なレンタルサーバーですと、 ルートドキュメント以外にはファイルを置けないようになっているように思います。

そこで、 .htaccessでアクセス制限をする という手法になります。

データベースファイルがあるフォルダに、

.htaccessファイルを設置して、

deny from all

と記述すると、データベースファイルのurlを入力しても、 403エラーになって、ダウンロードできなくなりました。 これで安心だと思います。

私は、 deny from all と記述しましたが、

<Files ~ "\.(db)$">

deny from all

< /Files>

というような感じに書いてみたり、

<Files ~ "\.sqlite$">

order allow,deny

deny from all

< /Files>

など、いろいろな記述の仕方があるようです。 環境によって書き換えても良いかもしれません。

sqliteとmysqlの違いのまとめ

sqliteは軽快で簡単に使えるので、私もこれから積極的に使っていきたいと思います。 一方、mysqlは大規模なデータを扱うのに、向いていたり、堅牢ということも言われています。 また、WordPressを使う場合は、mysqlの方がストレスがないように思います。

自分が使いたい機能に応じて、sqliteとmysqlとを使い分けていくのが良いのではないかと思います。

ロリポップ!

(2017/11/4)

トップページ

その他のコラム

コンテンツ

トップページ