当ブログはさくらインターネットの最安値の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;
でいけるらしいけど、作成時に設定しないといけなかったらしいので、当ブログでは利用することができなかった。