やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

SQLite3構文 reindex

 インデックスを削除、再作成する。照合シーケンス定義が変更されたときに役立つ。

成果物

構文

reindex;
reindex 照合シーケンス名;
reindex スキーマ名.テーブル名;
reindex スキーマ名.インデックス名;

 スキーマ名は省略するとmainと解釈する。

使い方

 vacuumと同時に最適化するために使われる。

sqlite3 a.db "vacuum;" "reindex;"

 何度もレコードを追加・削除しているうちに断片化してくる。そのときに使うと効果的。

 効果的かどうかはともかく、使ってみた。

0.sql

create table T(A text collate binary);
insert into T values('B');
insert into T values('a');
insert into T values('A');
select * from T order by A asc;
reindex;
A
B
a

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux

前回まで