mysql拉链表的数据策略,如何提高拉链表的查询效率?

0
本人工作在银行业,银行的仓库大都使用的TD,习惯了之后 发现teradata数据库真是比较好用,但是由于不是teradata的人,没有具体做过优化方面的整理
几个月前使用mysql数据库做拉链表,现在随着数据量的增大,做拉链操作的速度变慢。
更重要的是,使用此拉链出具报表,发现查询速度很慢。
对于拉链表,有什么好的表策略?
以前对于切片数据,使用的都是分区策略,对于拉链表还真没考虑过?
各位大神,求指教啊
已邀请:
1

gogodiy - 天善智能数据库专家、Tableau爱好者 2015-10-27 回答

拉链表还是一张普通的MYSQL数据表,常规的优化手段也是应该有效的。
1.如果更新频繁,又不用全文检索,数据表引擎建议InnoDB。
2.WHERE子句中经常用到的条件字段,表连接时ON后面用到的字段都可以加上索引。
3.定期使用OPTIMIZE TABLE处理碎片。
4.用EXPLAIN观察查询代码,是否有效合理用到了索引。
5.如果数据量大,考虑表分区。
1

BAO胖子 - 15年BI经验,涉足电力,快消品,医药,信息服务等行业的BI老兵。 2015-10-27 回答

1. 拉链表主要用途是保留历史数据,如果性能过低,可以考虑拆表,把一定年份以上的数据分出去存储。这个根据实际需求而定。
2. 拉链表不见得要用于报表的查询,SQL复杂并且很多时候报表只关心当前数值而不关心历史,你用拉链表查出来的数据是否真正符合需求?

要回复问题请先登录注册