http://qs321.pair.com?node_id=404144


in reply to Re^4: Hash lookups, Database lookups, and Scalability
in thread Hash lookups, Database lookups, and Scalability

Indexes and query behavior is usually pretty tied to the way a particular database engine works - and I don't know SQLlite at all, so I can't really help you with specifics.

However, your table schema is exceedingly simple, so you really only have two choices:

create unique index left_ix on words(left)
or
create unique index left_ix on words(left, right)
(and their opposites).

The first form is more "correct" - you really only want the key in the index. The second form may give you slightly better performance, at the expense of allowing duplicate "left" words into the table as long as they point at a different "right" word, and slightly more work during inserts (index maintenance is a little more complicated).

Personally I'd use the first form (index on "left", and a separate index on "right").

Michael