创建复合索引有什么指导原则?
有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高。
回复 1# blueshame
这个表只会被不断的插入,不存在被更新的情况,所以我想使用timestamp作为第一个主键字段,但是有些资料是避免在取值朝一个方向增长的字段(例如:日期类型的字段)上,建立索引;对复合索引,避免将这种类型的字段放置在最前面。 笔误,是2万数据,就是2万的数据,但是现在性能确实存在问题,大概有10个表,同时每个表都有2万的数据入库。
页:
[1]