blueshame 发表于 2013-01-09 01:45

创建复合索引有什么指导原则?

有4个字段作为主键。以下4个字段值不允许重复的,所以作了主键。
timestamp int
dn         varchar(255)
period   int
value       varchar(255)
其它字段....

其中timestamp就是时间,会一直不断的增大,

而dn就是网元标识,dn也会有固定的一批,大概有2万到10万间。

period就是时间间隔,这个固定是10, 20, 30, 40, 50, 60。

value也会是固定的值,取值依赖dn,大概是1-100的范围。

因为每隔period时间,就会有一批数据入库。每批大概20000万,应该以什么样的顺序创建索引,才不会导致入库的时候,IO高的情况。

现在就是以dn, value, timestamp, period导致io高。


blueshame 发表于 2013-01-09 02:02

回复 1# blueshame

这个表只会被不断的插入,不存在被更新的情况,所以我想使用timestamp作为第一个主键字段,但是有些资料是避免在取值朝一个方向增长的字段(例如:日期类型的字段)上,建立索引;对复合索引,避免将这种类型的字段放置在最前面。

blueshame 发表于 2013-01-09 02:24

笔误,是2万数据,就是2万的数据,但是现在性能确实存在问题,大概有10个表,同时每个表都有2万的数据入库。
页: [1]
查看完整版本: 创建复合索引有什么指导原则?