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