数据库 mysql 海量数据存储求教

kenshin54 · 2012年07月04日 · 最后由 tency 回复于 2012年11月05日 · 7257 次阅读

求教一下有关 mysql 海量数据存储问题:

  1. mysql 的 innoDB 单表数据存储多少比较合适?
  2. 我们主数据可能有上亿的数据,以及关联的数据可能到 10 亿级别,如果进行拆分表的话拆成多少个比较合适?
  3. 如果单表数据量拆分后在千万级别,只是在索引列上做一些查询,性能方面会不会有问题?
  4. rails 方面有没有对分表方便支持比较好的 gem 或者方案?

谢谢

你们都有这么多数据了,查一下就测试出来了有没有性能问题啊。。

#1 楼 @hooopo 数据是我们后面预计会到达的值,现在没有那么多,所以想提前做好准备

#2 楼 @kenshin54 那你们现在有多少

假设是时间顺序,时间近的数据重要,可以每各月 backup 下数据到平行表中。

#3 楼 @hooopo 我们的现有数据在千万级,测试过单表百万级的数据量,性能没有问题

#4 楼 @heliang7 谢谢你的回复,我们的数据并不是按时间顺序的,我比较想了解 mysql 单表的数据可承受量是多少,这样可以决定下怎么拆分表

这个数据量的话,是不是不要再用 mysql 了

#7 楼 @azhao 淘宝的 MySQL 里面不只这个量

以前用 mysql cluster innoDB 的数据库集群,单表数据超过百万级别的时候,查询就很费劲了,每一条 sql 要经过测试调优才能放到项目中用,在这个级别就要拆表了。不是 cluster 的 mysql 还没有测试过

#8 楼 @huacnlee 淘宝的方便说么?

#8 楼 @huacnlee 淘宝用全用的是 MySQL 还是仅仅只是一部分哈

基本思想就是 “拆分” 比如根据 id,把记录分布在不同的库里 或者根据查询条件分区 具体选什么方案实现,要看具体的需求场景

这数量级的数据,如果你们业务实时性要求不高,简单用 mysql 问题也不大,如果对实时性要求较高,建议上缓存(各种意义上的),以及分布式。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册