现在,我正在处理大量(实时数据)(请相信我),这些数据需要实时提供以快速读写给客户.我们正在使用的后端存储系统是Oracle,但我们想用精简的系统来代替大型的机器.
由于各种原因,我们不能使用Cassandra,我们正在测试(但是我很害怕)MongoDB(它确实很年轻,并且缺少一些关键功能),所以我在考虑分拆一堆MySQL实例.
是否有一个好的系统来管理此问题,还是我必须自己动手?我找到了一些项目,但是我不清楚它们是否支持动态添加/删除碎片.
解决方法:
您绝对可以非常有效地用MySQL实现数据库分片.如果分片方案很简单,则可以在应用程序层中完成,但如果分片方案更复杂,则可能需要使用工具.我们这里的网站上介绍了许多选项,以及我们支持的高级选项.
您可以在此处了解有关选项的更多信息:
http://www.dbshards.com/articles/database-sharding-whitepapers/
同样重要的是要考虑分片环境的整个生命周期,包括如上所述的故障转移,主动-主动复制,备份,还原和重新分片.
仅供参考,我们有客户在云环境(具有缓慢的I / O)中与成千上万的并发用户读写大量数据,在数据中心环境中甚至具有更快的读写速度.分片肯定是非常有效的,因为写入是线性扩展的,读取通常要好于线性(因为数据库中缓存了更多数据).