I want to make my queries reasonably efficient, and based on my research so far, in SQL this is done by using indexes.
For example say I have this table
CREATE TABLE MYTABLE
(_ID INTEGER PRIMARY KEY AUTOINCREMENT,
NAME_ID INTEGER,
SOME_VALUE REAL,
TIMESTAMP TEXT)
From what I am reading, indexes are automatically created for primary key fields (so _ID
is indexed) and UNIQUE
fields, but sometimes there may be multiple values for a given NAME_ID
, SOME_VALUE
, or TIMESTAMP
so I cannot apply UNIQUE
to any of them.
One common query might be to select rows in this table with NAME_ID = x
and date1 <= TIMESTAMP <= date2
'. Is it correct to say that I should make indexes for both NAME_ID
and TIMESTAMP
? Or would I make a composite index:
CREATE INDEX MYTABLE_INDEX on MYTABLE (NAME_ID, TIMESTAMP);
or is this the incorrect way to go about it?
If I create these indexes, am I basically done? Have I done all I need to help ensure that future queries on this table will be efficient if I am basing criteria on NAME_ID
and TIMESTAMP
like I've shown above?
Aucun commentaire:
Enregistrer un commentaire