关于动态建表的问题,会对数据库空间有多大影响,对其他事物处理的效率影响如何?
问题:
现在有个表数据量增长非常快,
并且要存储一年的数据,一年的时间数据量达到上亿是完全可能的。
这样势必会对影响读取和添加删除的效率。
一个同事的方案:
对该表按天分表,最多分为365个。
但是采用动态方式建表,通过程序创建,
当上一个表满了之后,就通过程序创建。
个人认为做周报(通过7个日表查询)、月报(通过30个表查询)、季报(90个表查询)。。。。
速度会比较慢,他说可以用游标。
我认为这种方式技术上不存在问题,但是违背了数据库程序的设计原则,可能造成更大的性能问题?
各位高人怎么看这个问题?
[解决办法]
也可以表分片吧。多分几个表空间。
[解决办法]
哪种策略无所谓,关键是提高IO。
加入你有10块硬盘,那就应该能够提供10倍的IO。
[解决办法]
分IO才是可行的,但是能否把表进行备份处理呢,如果是一亿的数据,以后怎么处理性能都是有影响的。
[解决办法]
1.分成365个表会增加很大的维护工作量,这不是一个好的方案
2.单表存储1亿条以上的数据肯定会带来一些性能问题,即使你做了分片得到的提高也很有限
分片能提高性能的前提是你的查询条件和分块条件存在一些关联以便系统能缩小查找范围
将数据划分为工作表和备份表个人觉得是比较可行的