0
我有一個MySQL的MyISAM表約400萬行的價格數據(7GB數據+ 9GB指數)與3列:多列索引或者時間序列MySQL表多個索引?
CREATE TABLE `prices` (
`ts` datetime NOT NULL,
`id` int(10) unsigned NOT NULL,
`price` double NOT NULL,
PRIMARY KEY (`ts`,`instrid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1$$
不同id
S的(我覺得基數是這個詞)的數量〜 500和用於大多數感興趣的時間段,那些時間範圍內,的id
基數是低級〜20(所以有3月1日和第二之間只有20個左右不同的ID)。
的查詢是幾乎完全的形式爲:
select ts, price from prices where ts between {t1} and {t2} and id = {id}.
好像有些指數(S)應該加快速度。
將ts
和id
上的組合索引或ts
和id
上的單獨索引更好嗎?一些第三選擇?我也希望能提供一些建議,讓我可以學習如何爲自己回答這個問題。
會的另一個表類型(InnoDB的?)更適合我的目的是什麼?
同意。使用以下順序的'(ts,id,price)'列覆蓋索引。 – 2012-02-24 22:10:43
一個有趣的解決方案。我會試試看看那篇文章。謝謝:) – 2012-02-24 23:16:00
你知道,如果這將是一個問題,如果該索引將不會裝入內存? – 2012-02-26 01:24:33