④ インデックスの間

10万行から1行を探す

②室でticksテーブルのB-tree(深さ2)を見ました。木の深さが浅いということは、 「主キーで探す」なら数回のページ読みで届くはずです。逆にインデックスの無い 列で探すと、該当する行を見つけるまで先頭から総当たりするしかありません。 実際のtrader.dbの本物のticksテーブルで、その差を実測してみましょう。

クエリ実測時間行数EXPLAIN QUERY PLAN

「SEARCH ... USING INTEGER PRIMARY KEY」はB-treeを辿って直接たどり着いたことを示し、 「SCAN」は先頭から順に調べたことを示します(①室のhexビューアで実際のB-treeページも見比べられます)。

砂場SQL

ここから先はあなた専用の使い捨てSQLiteファイルです(最大1MB・30分で自動削除)。 自由にSQLを実行して、実行のたびにファイルのページがどう変わるかをその場の hexビューアで確認できます。ATTACHVACUUM INTOは 安全のため使えません。