sqlite_ico

SQLite Home Page


当ブログはさくらインターネットの最安値のVPS上でSQLite版のSOY CMSで運営している。

何故、最安値のVPSでファイル型のデータベースを使用しているか?というと、

・低スペックのサーバで徐々に表示が遅くなりつつ状態に抗い、サーバのスキルを磨く

・SOY Shopとの併用でSOY CMSではSQLiteの利用を進めているので、SQLiteのスキルも磨いておきたい

というのが理由なのですが、

SOY CMS/Shopを利用する際、どのデータベースを利用すれば良いか?


記事数やアクセス数も多くなってきて、サイトの表示がもっさりしてきて、サーバの引っ越しを行いたい欲が徐々に芽生えつつあります。

※MySQLにして、データベースのチューニングも行いたい欲もある


このような状況の中、もう少し抗うことができないか?と検討していたところ、SQLiteのデータベースで一時的なデータが溜まって遅くなるという文章が目に止まり、SQLiteのVACUUMで空き容量の開放を試してみることにした。


以下のコマンドが試した手順

# SOY CMSのsqlite,dbがあるディレクトリまで移動 サイトIDはsite
cd /var/www/html/site/.db

#VACUUM実行前にファイルのサイズを調べる
$ wc -c sqlite.db 
44305408 sqlite.db

# sqlite.dbを開く
$ sqlite3 sqlite.db 
sqlite> VACUUM;
sqlite> .exit

#VACUUM実行後にファイルのサイズを調べる
$ wc -c sqlite.db 
44011520 sqlite.db

ファイル要領が0.3MB程減った。

これでデータ参照時に少しは速くなるのかな?




SQLiteにはauto_vacuumという機能があるらしいので、auto_vacuumを試してみようかと

Pragma statements supported by SQLite#auto_vacuum


sqlite> pragma auto_vacuum = full;
sqlite> pragma auto_vacuum;

でいけるらしいけど、作成時に設定しないといけなかったらしいので、当ブログでは利用することができなかった。