我在一個Android應用程序中使用SQLite,該應用程序應存儲數千個聲音軌道。我決定使用Track_title作爲索引來加快選擇和搜索。經過長時間的閱讀後,我從這個來源LINK瞭解到,INDEX將使SELECT
更快,但會使INSERT
變慢。他們建議在插入大數據之前從表格中刪除index
,然後再重新放入。 使用這個語法:何時使用CREATE INDEX以及何時使用USE INDEX
CREATE INDEX my_idx ON my_table (my_attribute);
一些其他來源,建議使用index
而不是從這個LINK在TABLE
的創作進行select
查詢。使用此語法:
SELECT * FROM my_table USE INDEX (col1)
WHERE col1= name;
問題是:哪一種方法會給我更好的性能?兩者的優點和缺點是什麼?
您的索引不執行任何操作,因爲它與查詢無關。通常,索引使用是基於where子句自動生成的。 – njzk2
我想你是誤解了這兩個命令,它們不是同義詞。如果不先創建它,就不能使用'USE INDEX'(使用CREATE INDEX')。當優化程序沒有使用實際上有助於查詢執行的特定索引時,應該使用'USE INDEX'(小心),並且您希望強制使用此索引。 – GarethD
SQLite不是MySQL,所以不要看MySQL文檔。你不能在SQLite中使用'USE INDEX'。 –