Distributed Database Solution?

时间:2010-11-05 18:21:33

标签: sql mysql database database-design load-balancing

嘿。我将建立一个真正非常庞大的数据库。

我一直在使用标准的mysql来处理我的大部分内容,但是这个特殊问题会影响TB,我希望能够每秒进行数百次查询。

除了设计我的数据库模式以外,它不会突然出现,快速硬盘加速了我最大的瓶颈以及建议采用何种解决方案。

将数据库分布在我的Intranet上的多台计算机上是否有意义,以便它可以使用CPU / Ram等进行扩展,如果有,可以使用此软件或数据库解决方案吗?

感谢您的帮助! 我搜索了与此相关的问题,如果已经被问到,我找不到任何遗憾。

4 个答案:

答案 0 :(得分:1)

数据库可伸缩性是一个非常复杂的问题;整个过程中存在很多问题。

首先,考虑最低悬的水果;您是否有将包含大量数据的单个表(或列)?将包含>>的BLOB的列。每个4MB?这些可以从数据库中提取出来并存储在平面文件存储系统中,而只是从数据库中引用;就在那里,可以将许多笨拙的解决方案降低到可管理的水平。

如果没有,您对不同的表子组有不同的使用模式吗?如果是这样,那么就有机会将数据库分割成不同的功能数据库,这些数据库可以分区到不同的服务器上。一个很好的例子是读取主要数据,例如在web服务器上,很少生成(想想用户特定的主页数据),但经常阅读;这种类型的数据可以分离到一个数据库(或者同样,带有引用的flatfile),它与其他用户数据分开。)

考虑数据库的事务要求;你可以干净地隔离你的交易边界,还是会在你的数据库中进行深入混合的交易?如果您可以隔离您的交易边界,那么还有另一个潜在的有用边界。

这只涉及与此类事情有关的一些问题。值得考虑的一件事是你是否真的需要一个实际上会变得庞大的数据库,或者你是否只是想将数据库用作持久层。如果您将数据库用作持久层,则可能会重新考虑是否确实需要数据库的关系特性,或者是否可以在更简单的持久层之上使用较小的关系覆盖。 (我这样说是因为大量的解决方案似乎可以在大型持久层上使用薄的关系层;它值得考虑。)

答案 1 :(得分:1)

好的,首先我需要指向 here. 我认为MySQL不会像您想要的那样执行。我有一种不好的感觉,当我说你需要调查Oracle安装时,你会说,“我们没有现金。”但是,当我说获得最新/最好的SQL-Server时,你会说,“我们没有实现它的硬件。”我担心太字节容易破坏你的MySQL安装。

答案 2 :(得分:0)

正在构建新一代的NewSQL数据库,以准确解决在多个服务器上分配资源的问题。 Clustrix数据库(从头开始构建为MySQL替换)是一个提供接近线性扩展的示例 - 当你耗尽CPU /内存时,你可以简单地添加节点。

答案 3 :(得分:0)

数据库可伸缩性是一个棘手的问题,您应该考虑可以为您解决的解决方案。我相信MySQL可以作为解决问题的基础。

水平可扩展性;水平扩展数据库(也称为横向扩展)的能力是解决非常大的表和数据库问题的好方法。