我创建了 3 个表,例如:
db.execSQL("CREATE TABLE IF NOT EXISTS programs (id_program INTEGER PRIMARY KEY AUTOINCREMENT , id_channel TEXT , nom_prgrm TEXT , debut TEXT , fin TEXT , FOREIGN KEY(id_channel) REFERENCES channels(id_channel)) ");
db.execSQL("CREATE INDEX __program_index ON programs(nom_prgrm)");
db.execSQL("CREATE TABLE IF NOT EXISTS categories (id_categorie INTEGER PRIMARY KEY AUTOINCREMENT, nom_categorie TEXT)");
db.execSQL("CREATE UNIQUE INDEX __categorie_index ON categories(nom_categorie,id_categorie)");
db.execSQL("CREATE TABLE IF NOT EXISTS categories_programs (id_categorie INTEGER REFERENCES categories(id_categorie) ,id_program INTEGER REFERENCES programs(id_program), PRIMARY KEY(id_categorie,id_program))");
程序表包含大约 2500 条记录和类别 150,因此链接表有 3400 条记录
当我执行此查询时,需要很长时间才能显示结果我不知道如何优化它!
SELECT id_channel , nom_categorie , debut , fin , nom_prgrm FROM programs, categories_programs, categories WHERE ( (categories_programs.id_program = programs.id_program) AND (categories_programs.id_categorie = categories.id_categorie) AND ('"+sentence+"' LIKE ('%' || nom_categorie || '%')))
可能是造成这个问题的连接?
感谢帮助
我的问题解决了,我在 android 4.1 上尝试了相同的代码,它运行得非常快,但使用 S2(android 2.3)它很慢!