扩展MySQL数据库

什么是用来扩展mysql数据库的方法或工具。 我们有每天增加大小的mysql数据库。 我们刚刚分配了一个固定的硬盘大小,所以我担心的是,当硬盘容量满时,我们需要重新定位或增加硬盘大小。

使用RAID似乎是一个好主意,但它的大小仍然是固定的。 我们需要一个可扩展的MySQL数据库系统。

现在我只能把Hadoop看成一个解决scheme。

对于我们来说,理想的解决scheme是,当硬盘达到极限时,我们只需在机器上增加另一个硬盘,然后MySQL将其识别为一个硬盘,然后我们就不能在服务器上添加硬盘了,一个新的服务器将会被安装添加到MySQL数据存储空间的总大小。

三种最stream行的扩展方法是主从复制,分区和分片。 主从复制只有在你想缩放读取时才有效。 它不打算缩放数据库大小或写入。 分区是一种在几个物理位置(在多个硬盘上)存储大表的方法。 分片可以被认为是由应用程序执行的全局级别的分区,而不是MySQL服务器。 基本上,分片是一种在几个不直接耦合的MySQL数据库上存储类似数据的方法。 前两种方法在内部由MySQL支持,分片应该由应用程序开发人员在应用程序级别执行。 它看起来像你应该使用分片,因为分区不能跨越多个服务器,然后有一定的限制。

集群通常被用来作为性能的解决scheme,但是我对你写的内容的解释是它的数据库的大小是什么问题?

使用NoSQL数据库通常是出于性能方面的原因(MySQL复制设置起来很简单 – 所以在可用性方面没有太大的区别)但是你却放弃了大量的function。 Hadoop不会解决你的数据量问题,也许意味着你有很多代码要重写。

如何pipe理数据量取决于应用程序和数据的性质 – 您是否可以删除旧数据? 你可以离线迁移吗? 你能整合旧的数据吗?

对于我们来说,理想的解决scheme是当硬盘达到极限时,我们只需在机器上添加另一个硬盘,然后MySQL就会将其识别为一个硬盘

虽然您可以简单地将磁盘添加为RAID-0或JBODarrays,但这是一个非常混乱的做法 – 您将从单点故障转到多点故障点。

同样,您可以挂载磁盘并将单个表文件迁移(使用来自原始位置的符号链接),但是这是以您不运行单个文件innodb后端为前提的。 这与使用RAID-0 / JBOD一样糟糕。

对于事务型DBMS,镜像(RAID-1)提供了巨大的性能优势 – 但不会增加存储量。 因此,我build议您计划从1到4个驱动器的存储器跳转(configuration为镜像的一组条带)。