SQLite/削除してもファイルサイズが小さくならない場合の対処
の編集
Top
/
SQLite
/
削除してもファイルサイズが小さくならない場合の対処
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
PostgreSQL/template0とtemplate1の違いについて
#navi(../) * SQLiteでレコードを削除してもファイルサイズが小さくならない場合の対処 [#afc8cb88] SQLiteでレコードを削除(DELETE)してもファイルサイズは変わりません。~ これは、削除したエリアをそのままにして再活用するためです。~ 従って、開いた(削除した)領域を開放するには、VACUUMというコマンドにより領域の開放を行わないといけません。~ 以下に例を記しながら説明します。 尚、操作はUbuntuで行いました。 #contents #htmlinsertpcsp(db-top.html,db-sp.html) * 関連記事 [#g03d7ee7] -[[WindowsにSQLite3のインストール>SQLite/WindowsにSQLite3のインストール]] -[[CentOSにSQLite3をインストール>SQLite/CentOSにSQLite3をインストール]] -[[UbuntuにSQLite3をインストール>SQLite/UbuntuにSQLite3をインストール]] * 使用するデータベースファイルおよびデータ内容 [#jdff266f] 使用するデータベースとデータ内容は以下の通りです。 - 使用するデータベースファイル名はtestdb.sqlite3になります。~ サイズは4096バイトです。 sakura@ubuntu:~$ ls -l 合計 4 -rw-r--r-- 1 sakura sakura 4096 2月 7 10:47 testdb.sqlite3 - SQLite3を起動しテーブル名およびデーブル構成を確認しています。 SQLite version 3.7.9 2011-11-01 00:52:41 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> .tables t1 sqlite> .schema t1 CREATE TABLE t1 ( a, b, c ); sqlite> select count(*) from t1; 88 sqlite> .q * 実際にレコード削除してみる [#k81fc818] -DELETEで全レコードを削除しました。 sakura@ubuntu:~$ sqlite3 testdb.sqlite3 SQLite version 3.7.9 2011-11-01 00:52:41 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> delete from t1; sqlite> select count(*) from t1; 0 sqlite> .q -ファイルサイズは変わっていません。 sakura@ubuntu:~$ ls -l 合計 4 -rw-r--r-- 1 sakura sakura 4096 2月 7 10:48 testdb.sqlite3 * VACUUMコマンドを実行しファイルサイズを確認する [#a38ee72a] vacuum;コマンドを実行したあとの結果です。~ ファイルサイズが小さくなっているのが確認できます。~ つまり空きエリアを開放したのが確認できました。 sakura@ubuntu:~$ sqlite3 testdb.sqlite3 SQLite version 3.7.9 2011-11-01 00:52:41 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> vacuum; sqlite> .q sakura@ubuntu:~$ ls -l 合計 4 -rw-r--r-- 1 sakura sakura 2048 2月 7 10:50 testdb.sqlite3 以上、SQLiteで削除してもファイルサイズが小さくならない場合の対処方法でした。 #htmlinsertpcsp(db-btm.html,db-sp.html)
タイムスタンプを変更しない
#navi(../) * SQLiteでレコードを削除してもファイルサイズが小さくならない場合の対処 [#afc8cb88] SQLiteでレコードを削除(DELETE)してもファイルサイズは変わりません。~ これは、削除したエリアをそのままにして再活用するためです。~ 従って、開いた(削除した)領域を開放するには、VACUUMというコマンドにより領域の開放を行わないといけません。~ 以下に例を記しながら説明します。 尚、操作はUbuntuで行いました。 #contents #htmlinsertpcsp(db-top.html,db-sp.html) * 関連記事 [#g03d7ee7] -[[WindowsにSQLite3のインストール>SQLite/WindowsにSQLite3のインストール]] -[[CentOSにSQLite3をインストール>SQLite/CentOSにSQLite3をインストール]] -[[UbuntuにSQLite3をインストール>SQLite/UbuntuにSQLite3をインストール]] * 使用するデータベースファイルおよびデータ内容 [#jdff266f] 使用するデータベースとデータ内容は以下の通りです。 - 使用するデータベースファイル名はtestdb.sqlite3になります。~ サイズは4096バイトです。 sakura@ubuntu:~$ ls -l 合計 4 -rw-r--r-- 1 sakura sakura 4096 2月 7 10:47 testdb.sqlite3 - SQLite3を起動しテーブル名およびデーブル構成を確認しています。 SQLite version 3.7.9 2011-11-01 00:52:41 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> .tables t1 sqlite> .schema t1 CREATE TABLE t1 ( a, b, c ); sqlite> select count(*) from t1; 88 sqlite> .q * 実際にレコード削除してみる [#k81fc818] -DELETEで全レコードを削除しました。 sakura@ubuntu:~$ sqlite3 testdb.sqlite3 SQLite version 3.7.9 2011-11-01 00:52:41 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> delete from t1; sqlite> select count(*) from t1; 0 sqlite> .q -ファイルサイズは変わっていません。 sakura@ubuntu:~$ ls -l 合計 4 -rw-r--r-- 1 sakura sakura 4096 2月 7 10:48 testdb.sqlite3 * VACUUMコマンドを実行しファイルサイズを確認する [#a38ee72a] vacuum;コマンドを実行したあとの結果です。~ ファイルサイズが小さくなっているのが確認できます。~ つまり空きエリアを開放したのが確認できました。 sakura@ubuntu:~$ sqlite3 testdb.sqlite3 SQLite version 3.7.9 2011-11-01 00:52:41 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> vacuum; sqlite> .q sakura@ubuntu:~$ ls -l 合計 4 -rw-r--r-- 1 sakura sakura 2048 2月 7 10:50 testdb.sqlite3 以上、SQLiteで削除してもファイルサイズが小さくならない場合の対処方法でした。 #htmlinsertpcsp(db-btm.html,db-sp.html)
テキスト整形のルールを表示する