这些数据是只读的,并且按照国家分组,每天大约十万次查询量。那么问题来了:1、我该怎么设计数据库才能扛得起?2、硬件相关配置如何,费用又是多少?3、我该如何选择较为轻量级的数据库?

解决方案 »

  1.   

    1,实时性要求高吗?并发数高吗?
    如果不高可以采用myisam,myisam支持全文检索,可以满足你的要求。另外,大表还可以拆分。mysql绝对满足你的要求了。
    你采购的机器,要512G内存的(没有盈利的中小型电商标准内存配置是256G,你是国家的不差钱的吧),hp的一台高端pc server不会超过80W的价格。cpu性能好一些。把数据全部加载到内存,这样性能绝对满足你的要求了。
    2,如果分表分库的话,那么数据跨表效率不是更低了吗?
    分库分表是有原状的,数据独立性比较高的才分库分表,不是所有的都分。3,因为将来还会批量插入一批数据,以及增加服务器。
    批量插入数据(只要不是海量级别的)可以选在晚上业务少的时候做,这个不影响你的qps以及tps。所以不会对服务器性能产生压力。
      

  2.   

    每天十多万的查询量,查询比较集中的话负载还是比较大的。
    找找这本书《MySQL性能调优与架构设计》参考参考
      

  3.   

    oracle 的话 按照国家分表就行了 ,以前测试的时候每天有200G数据一个测试机器,处理都没问题, 32核32G的 主频忘记了,主要还要看你的表结构设计。
    mysql的话就不太清楚了 应该抗不了那么多数据,
      

  4.   

    只读数据,你是单表数据达到500G?
    暂且按照单表来估算,一天10w次查询,一秒钟两次不到,峰值1秒10w。
    500G的数据,估算100G的热数据,拆分成16个实例,每个实例分配8G内存存放热数据。
    依次推算:16台16G pc服务器即可满足。MySQL应该够用。
      

  5.   

    1、可以考虑做汇总表,临时表进行,mysql处理500G的数据完全没有问题;
    2、考虑数据是否需要实时数据等问题