mysql拆分方式_MySQL分区/分片/拆分 – 哪个方式去?

我们有一个大约70 GB的InnoDB数据库,我们预计在未来2到3年内它将增长到几百GB。大约60%的数据属于单个表。目前数据库工作的很好,因为我们有一个服务器与64 GB的内存,所以几乎整个数据库适合内存,但我们关心的未来,当数据量会大得多。现在我们正在考虑分割表(尤其是占据数据最大部分的表)的方法,我现在想知道,最好的方法是什么。

我目前知道的选项是

>使用版本5.1附带的MySQL分区

>使用某种封装数据分区的第三方库(如hibernate shards)

>在我们的应用程序中实现它自己

我们的应用程序建立在J2EE和EJB 2.1(希望我们有一天会切换到EJB 3)。

你会建议什么?

EDIT(2011-02-11):

只是更新:目前数据库的大小为380 GB,我们的“大”表的数据大小为220 GB,其索引的大小为36 GB。因此,虽然整个表不适合在内存中,索引。

系统仍然执行良好(仍在相同的硬件上),我们仍在考虑分区数据。

编辑(2014-06-04):

一个更新:整个数据库的大小是1.5 TB,我们的“大”表的大小是1.1 TB。我们将服务器升级为具有128 GB RAM的4处理器机器(Intel Xeon E7450)。

系统仍在执行良好。

我们计划接下来要做的是将我们的大表放在单独的数据库服务器上(我们已经在我们的软件中进行了必要的更改),同时升级到使用256 GB RAM的新硬件。

这个设置应该持续两年。然后,我们将不得不终于开始实现分片解决方案,或者只是购买1 TB的内存的服务器,这应该保持我们一段时间。

EDIT(2016-01-18):

我们已经把我们的大表放在一个单独的服务器上自己的数据库。目前这个数据库的大小是大约1.9 TB,其他数据库(除了“大”之外的所有表)的大小是1.1 TB。

当前硬件设置:

> HP ProLiant DL 580

> 4 x Intel Xeon CPU E7- 4830

> 256 GB RAM

性能是这个设置很好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值