mardi 7 avril 2015

Slow Selection Query even after indexing the table (sqlite and c++)

Create tables


I have a database composed of two tables:



  1. ENTITE_CANDIDATE

  2. VARIATIONS


Tables are created by using the following queries:



CREATE TABLE IF NOT EXISTS ENTITE_CANDIDATE (ID INTEGER PRIMARY KEY NOT NULL, ID_KBP TEXT NOT NULL, wiki_title TEXT, type TEXT NOT NULL);"

CREATE TABLE IF NOT EXISTS VARIATIONS (ID INTEGER PRIMARY KEY NOT NULL, ID_ENTITE INTEGER, NAME TEXT, TYPE TEXT, LANGUAGE TEXT, FOREIGN KEY(ID_ENTITE) REFERENCES ENTITE_CANDIDATE(ID));"



  • Table ENTITE_CANDIDATE is composed of 818,742 records

  • Table VARIATIONS is composed of 154,716,653 records




Index tables


I indexed the previous tables by using the following queries:



`CREATE INDEX var_id ON VARIATIONS (ID, ID_ENTITE, NAME);`
`CREATE INDEX entity_id ON ENTITE_CANDIDATE (ID, wiki_title);`




Retrieve information


I want to retrieve from table VARIATIONS the following records:



"SELECT ID, ID_ENTITE, NAME FROM VARIATIONS WHERE NAME=foo ;"


Every select query is taking around 5.414931 seconds. Is that normal? Am I indexing correctly the tables?


Aucun commentaire:

Enregistrer un commentaire