我有一個表,看起來像這樣用sqlite創建。SELECT查詢的良好性能的主要選擇
CREATE TABLE Cars (
POWER DOUBLE ,
CAPACITY DOUBLE,
SPEED DOUBLE,
TIME INTEGER NOT NULL,
TYPE INTEGER NOT NULL,
MODEL INTEGER NOT NULL,
PRIMARY KEY (TIME, TYPE, MODEL));
TYPE有15個不同的值,每種類型有20個不同的MODEL值。 對於每個模型,每10秒插入一條新記錄。
一個小例子:
POWER----TIME----TYPE----MODEL
45.6 2588 3 14
46.8 2588 3 15
44.7 2588 3 16
此表是與數百萬行的真正巨大的。
正如你可以看到我的主鍵是(TIME, TYPE, MODEL)
,因爲這是一個獨特的標識符。
我的應用程序多次運行select查詢,當時間範圍很大時,或者如果我爲多個模型運行查詢,這可能需要很長時間。
比如我運行這種類型的查詢往往:
SELECT power, time, type, model
FROM CARS
WHERE type = 3 AND model = 14 AND time BETWEEN 2588 and 13550;
我曾嘗試與像(TYPE, MODEL, TIME)
這增加了性能的一些情況,但不是在一個大的時間間隔主鍵進行試驗。
我的問題是我如何優化記錄的檢索,以及哪種主鍵似乎對這種情況是最佳的?
插入和更新不是性能方面的問題。
你的索引是什麼? – 2012-08-16 12:04:11
使用索引來提高性能 – 2012-08-16 12:05:18
那麼,我使用的唯一索引類型就是主鍵。對不起,如果這是你的意思? – 2012-08-16 12:08:54