有N年的数据,其中N>10每年数据在2千万-5千万不等,怎么做MySQL数据的存储?可不可以做分区视图?每年一张表?Data_2009/Data_2010/Data_2011 ...,然后做一个view?数据时经常访问一个id的几年数据(2-4年)

解决方案 »

  1.   


    建议按照月来分表,mysql的分区功能有缺陷。一个月一张表,每张表200w到500W数据,将id字段建立索引。然后用union all来查询id的几年数据。这是我目前想到的比较可靠的方案!
      

  2.   


    我们公司是按照天分表的,如果客户要查询一个月的数据,那么会union all 30张表,虽然sql很长,但是速度却N快,因为一张表只有1W左右的数据量。客户一般都查的是最近一个月的记录。如果客户要查询好几个月甚至一年以上的记录的时候,我们会让他在辅助表里面查询(近2天的数据查询不到),这个记录就放在专门的历史数据库里面,用的是mongodb开源数据库。
      

  3.   

    这么大的数据量, 用Mysql不是好事
      

  4.   


    没有关系,你的数据如果上了1000GB,是该考虑用cluster的时候了。
      

  5.   

    这个和多少GB没有关系, 这已经不仅仅是硬件的问题(当然硬件必须跟上),恐怕没有那个公司敢用Mysql做这样的工程.说的难听一些,是Mysql没有这样的能力.做一些中小或者论坛之类还可以, 这么大的数据量一旦出了问题,死的心都有
      

  6.   

    几年前曾经用过Mysql, 不到半个小时, 删掉了, 因为它不支持事务.
    现在支持了, 但是看过大数据量的测试, 还是差一些