簡體   English   中英

為什么SQLite索引不會加快我的查詢速度

[英]Why does an SQLite index not speed up my query

我有2張桌子:

tblValidItems - | - tblItems

validID        itemID
-------        ------
3              1
5              2
6              3
...            4
~ 8 K items    5
               ..... 
               ~ 20 K items

我的查詢是選擇tblItems中同樣位於tblValidItems某些東西:

SELECT tblItems.itemID FROM tblItems 
JOIN tblValidItems ON tblItems.itemID = tblValidItems.validID

我在兩個表上都嘗試了帶有和沒有索引的查詢,但結果變化很小:

  • 兩個表上都有索引 - 127ms
  • 兩個表都沒有索引 - 132ms

這讓我感到驚訝,因為我認為索引會顯着影響此查詢的速度。 為什么不呢?

我猜測查詢主要是返回8,000個值而不是查找行的時間。

當您減小正在使用的數據的大小時,索引最有用。 從20k行減少到8k並不是特別重要。

默認情況下會為Sqlite主鍵編制索引。 無論如何,您正在加入索引的主鍵。

每當您對sqlite如何處理查詢有疑問時,請使用EXPLAIN QUERY PLAN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM