用于扩展mysql数据库的方法或工具是什么?我们有mysql数据库,每天的规模都在增加。我们刚刚分配了一个修复硬盘的大小,所以我担心的是,我们将需要重新定位或增加硬盘大小的时候,当硬盘的容量是满的。
使用RAID似乎是一个好主意,但它的大小仍然是固定的。我们需要一个可扩展的MySQL数据库系统。
现在,我只能认为Hadoop是一个解决方案。
对于我们来说,理想的解决方案是,当硬盘达到极限时,我们只需在机器上添加另一个硬盘,然后MySQL就会识别它为一个硬盘,那么我们就不能再在服务器上添加硬盘了,将设置一个新的服务器来增加MySQL数据存储空间的总大小。
发布于 2011-02-10 07:50:56
三种最流行的缩放方法是主从复制、分区和切分。只有当您想要缩放读取时,主从复制才有效。它不打算缩放DB大小或写入。分区是一种将大表存储在多个物理位置(在多个HDD上)的方法。切分可视为应用程序执行的全局级别上的分区,而不是由MySQL服务器执行的分区。基本上,切分是一种跨几个非直接耦合的MySQL数据库存储类似数据的方法。MySQL内部支持前两种方法,应用程序开发人员应该在应用程序级别执行分片。看来您应该使用切分,因为分区不能分布在多个服务器上,因此有一定的限制。
发布于 2011-02-10 10:40:39
集群通常被用作性能的解决方案,但是我对您所写内容的解释是,数据库的大小才是问题所在?
使用NoSQL数据库通常是出于性能原因(MySQL复制很容易设置--因此在可用性方面没有太大的差异),但您需要大量的功能。Hadoop不会解决您的数据卷问题,这可能意味着您需要重写大量代码。
如何管理数据卷在很大程度上取决于应用程序和数据的性质--您能删除旧数据吗?你能离线迁移它吗?你能合并旧数据吗?
对于我们来说,理想的解决方案是,当硬盘达到极限时,我们只需在机器上添加另一个硬盘,MySQL就会将它识别为一个。
虽然您可以简单地将磁盘添加为RAID-0或JBOD数组,但这是一个非常混乱的实践--从一个故障点到多个故障点。
类似地,您可以挂载磁盘并将单个表文件迁移到上面(使用来自原始位置的符号链接),但前提是您没有运行单个文件innodb后端。这和使用RAID-0/JBOD一样糟糕。
对于事务性DBMS来说,镜像(RAID-1)提供了巨大的性能好处,但并没有增加存储量。因此,我建议计划从1到4个驱动器(配置为镜像的一对条形集)的存储跳转。
https://serverfault.com/questions/233720
复制相似问题