什么是最好的方式来处理与共享数据库的在轨?应该片以处理在应用层的活动记录层,该数据库驱动层,一个代理层,或者别的东西完全?有哪些利弊?

有帮助吗?

解决方案

FiveRuns有一名宝石 DataFabric 这并应用一级的分区和主/从复制。这可能是值得检查。

其他提示

我假设有碎片我们谈的是水平划分和不垂直划分(这里的维基百科上的差异).

第一, 伸展的垂直划分 你可以尽可能把它在你考虑的水平划分。它很容易在轨道,具有不同的模型指向不同的机器和轨道站,这会带给你远远不够的。

横向分区,在一个理想的世界,这将是处理在 应用层 在轨道上。但是,尽管这并不难,这是不平凡的在轨道,并通过你需要的时间,通常的应用程序已经超越了点,这是可行的,因为你有Email电话撒的地方。没有一个、开发或管理,喜欢工作在它之前你需要它,因为每个人都会而不是工作在功能上的用户现在使用,而不是在划分可能不会发挥作多年之后你的业务具有爆炸。

Email层...不容易从什么我可以看到。将需要大量的猴子修补入轨道内部。

斯波克 我们结束了处理这种使用 定义MySQL代理 和打开来源,它在SourceForge作 史巴克代理.Email认为它在说一个数据库机器在现实中,它在说话的代理,后者然后会谈到一个或多个MySQL数据库融合/排序的结果,并返回他们Email.只需要一些改变你的轨代码。看看史巴克代理SourceForge页的更多详细信息,并为我们的原因为走这条路。

对于那些你喜欢我谁没有听说过的碎片:

http://highscalability.com/unorthodox-approach-database-design-coming-shard

连接轨的多个数据库是不是什么大不了的-你只有一个Email类为每个碎片,可复盖的连接性。这使得它很简单的如果你需要做跨碎片的呼吁。然后你只需要编写一个小的代码时你需要打电话之间的碎片。

我不喜欢汉克的想法的分轨情况下,因为看来具有挑战性的对话代码之间的实例,除非你有一个很大的共用图书馆。

你也应该看做喜欢的东西 受虐狂 在你开始之前分片。

对于轨的工作与复制的环境中,我建议使用my_replication插件,它有助于开关的数据库连接到一个奴隶在运行时间

https://github.com/minhnghivn/my_replication

我认为,最简单的办法是保持1:1之间的轨道实例和数据库的碎片。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top