|
水平切分表就是把一个大记录的表分成两个或多个结构相同的数据表,比如tbl_day_total,字段有id,name,date,content,记录有1000W条,我水平切分成两张表
比如分成tbl_day_total1、tbl_day_total2,字段是一样的,结构是一样的,但是每张表分担了500W条记录。垂直切分表就是把表的字段切开,比如本来有50个字
段,分成两张表,每张表就包含了25个字段
谢谢各位高手们的指点和讨论
现在已经进行到了数据库表的逻辑结构设计了(贴中所说的关于盘点的数据库)
但是之前说到统计时有两块业务会按时段统计,也就是说要走原始基础数据表,每天原始基础数据表是1000W数据
这个是没有考虑去走中间表的,我在考虑这几个问题
1、能不能在每天插入原始基础数据后,每天晚上11点59分这个样子去触发任务,然后将原始数据表全部导入到一份中间表(该中间表也就是原始数据表的备份),如果
有按时段这个粒度查询的话,我就直接走这个备份表,毕竟每天就只插入一次。但是如果触发的任务执行失败,那按时间段粒度查询这个表岂不是失败了
2、原始基础数据表和统计的中间表有必要分库吗,比如原始基础数据表放在A库,统计的放在B库,放在同一个库会不会造成IOPS过高,因为每天1000W数据量,及
亿级数据量的访问,有必要读写分离吗
3、索引的设计是一开始就考虑好呢,还是在数据量大了以后才加上呢,当然,目前逻辑结构设计阶段我也能清楚索引按哪几个走比较好,但是如果一开始设计好,那插入
数据会不会受影响
4、如果我对原始数据表做个中间表的备份,这样是不是可以避免了在原始数据表上做索引(毕竟插入操作比较多)
还望各位高手拍砖指导 |
|