mysql分区表和分表哪个好?
分表好,MySQL的性能,分表能够改善高并发的性能,分区能够充分利用磁盘的I/O吞吐率。
分表和分区并不矛盾,而是可以相互配合的。对于那些访问量比较大,并且数据量比较多的表,可以采取分表和分区结合的方式(如果MERGE存储引擎的分表方式不能和分区配合的话,也可以使用其他的分表方式)。对于访问量不大,但是数据量比较多的表,可以只采取分区的方式。
谢邀。如果是资产记录表根据常理,首先里边数据应该不能定期清理,根据你现在数据量算上一定增速一个月大概1500-2000千万的数据量。
建议初期可以考虑按月分表或者哈希分表,分区表临时顶下数据量突然增长,当个临时方案用还行,长治久安还是想着做分表吧。
分区表的分区索引是怎么建的?
这个场景按时间的分区表或索引,一般严格的带时间字段天级别以内的查询,不会有明显的速度差异(4G内存,能存的热数据也不多,1个月开外的数据基本就是读硬盘了,只有一块盘的话,分区不会比索引提升很多)
分区在要做数据归档收缩的时候的会带来很多的方便。(特别是如果寿命远超3-5年的设计寿命的时候,那个时候代码基本没人改,只能从数据库的表上做做动作了, 用delete的话,完了还得分批收缩表,如果是经验比较足的DBA也能搞定。)
如果不超5年,主表三千万数据,查询和索引设计合理的话,妥妥的hold住。 2.5亿的log表,一旦如果要查很早某一天的话,不管是索引还是分区,cpu和io一样都会比较吃紧,这个时候对主表的性能也会有影响(热数据进内存)。
结论:主表可以单表,log表建议按月分区,或者在一致性要求不高的情况程序异步自动分割写文件(推荐)。