SQLiteを使って感じたメリットとデメリット
2024/01/07
SQLiteを用いたツールをいくつか作って感じたメリットとデメリットをメモ。
目次
メリット
バックアップが楽
ファイル単位なのでバックアップを取るのが楽。
FTPでファイル落としてくるだけ。
インポートが楽
MySQLで10MB以上とかになると、インポートするのにけっこう面倒くさい。CUIで対応すれば楽なのかもしれないけど、いつもphpMyAdminから対応しており、数MBのファイルになるとアップロード制限にかかったりとか細かい部分が面倒。SQLiteならFTPでアップロードするだけなので楽。
思ったより処理が速い
以下を見る限りでは非常に速い。
http://d.hatena.ne.jp/cypher256/20121013/p1
体感としても、数万件のデータを扱ってみた限りではMySQLと遜色が無いように感じた。
接続が楽
データベースのアカウント情報をincludeしてきたりとかそういう手間が無い。ソースを少し短くできる。
MySQLが使えない環境でもSQLiteなら使える場合がある
VPSだと無縁だけど、レンタルサーバーだとデータベース数が決まっている場合が多い。そういったサーバーでもPHPが使えたらSQLiteも使える場合がある。汎用性があって尚且つ小さいプログラムの場合にzipとかにまとめておけば、環境問わずにすぐ使えそう。また著作権を主張していないらしいので、そういうプログラムを配布する際の心配が無い。
同じようなサイトを作る場合にMySQLより手間がかからない(2015/11/18追記)
初めてページを開く際にsqliteファイルとデータベースを作成するようにPHPで書いておけば、姉妹サイトなんかを作る際にフォルダごとコピーするだけで良い。MySQLだとテーブルを作成するのが面倒。コマンドラインから作成する人はそう思わないかもしれないけど、aminerとかphpmyadminとかで作成する場合はけっこう手間。
デメリット
セキュリティ的に怖い
パスワードとかが無いのでセキュリティ的に怖い。htaccessでBasic認証等はかけてるけど不安。ユーザー情報とか大事なデータは入れたくない。
複数の同時書き込みができない
同時書き込みができないので、作成物に制限がかかる。同時書き込みの際に何らかのケアを考えるのもありだけど、それするぐらいなら面倒くさいのでMySQL使う。
日本語の情報が少ない
分からないところをググってもMySQLとかからするとかなり情報量が少ない。あとPHP&SQLiteで使いたいのにAndroid&SQLite情報がけっこう出てきたりする。
バージョンが古い場合はバルクインサートの上限が500件
SQLiteのバージョンが3.7.11以前の場合は500件までしか同時にインサートできない。レンタルサーバーとかでバージョンを変更できない場合は辛い。
ページングを設置したい時が面倒くさい(2015/11/18追記)
ページングを設置する際にMySQLでの「SQL_CALC_FOUND_ROWS」みたいなものが見当たらない。なので、2回SQL文を発行する必要がある。
まとめ
データ数が大きくならず(10万件以下ぐらい?)、書き込みが可能なページは単一のユーザーが使うといった状況では十分に使える。後者の方はかなり痛いデメリットなので割りと限られたケースになりそう。
関連記事
-
データベース管理ツール「Adminer」でSQLite3を使えるようにする方法
SQLite3で作成したデータベース及びテーブルをAdminerから操作したい。 ...
-
PHPとSQLiteで簡易BBSの作成
PHPとSQLiteの練習で簡易掲示板を作ったのでメモ。 目次1 ...
-
SQLiteでデータがINSERTできないエラーの原因と対応方法
SQLiteでINSERT文を発行するも「Warning: SQLite3::q ...
-
PHP5.5からSQLite3を使用する際のよく使う構文
PHPからSQLiteを使う際に必ず使うであろう基本的な構文のメモ。PDOは使っ ...
-
SQLite3でデータをランダムに抽出したい
SQlite3でデータをランダムで抽出したいケースがあった。MySQLと同様RA ...