sqlite> .schema actor
CREATE TABLE actor (
id INTEGER PRIMARY KEY, name TEXT, gender TEXT
);
sqlite> explain query plan
...> select * from actor where id = '305453';
0|0|0|SEARCH TABLE actor USING INTEGER PRIMARY KEY (rowid=?)
sqlite> explain query plan
...> select * from actor where name = 'Connery, Sean';
0|0|0|SCAN TABLE actor
sqlite>
SEARCH TABLE actor USING INTEGER PRIMARY KEY (rowid=?)
nimmt deutlich weniger Zeit im Vergleich zu SCAN TABLE actor
SUCHE TABELLE vs SCAN TABLE
Es ist offensichtlich, dass SCAN TABLE actor
erschöpfende Scan actor
Tabelle ist aufgrund Möglichkeit der Vervielfältigung, aber,
1) Sind SCAN TABLE
& SEARCH TABLE
Scannen B-TR EE oder Sequenz von Datensätzen?
2) Wenn es B-Baum ist, dann wie SEARCH TABLE
Abfrage schneller?
Der Primärschlüssel ist ein Index, er muss nicht jede Zeile lesen. – Barmar
@Barmar Erstens, diese Abfragen scannen Reihenfolge der Datensätze oder B-Baum, in beiden Fällen. Weil B-Baum mit Primärschlüssel ist ziemlich schneller. – overexchange