-
09-06-2019 - |
题
什么是最好的方式来处理与共享数据库的在轨?应该片以处理在应用层的活动记录层,该数据库驱动层,一个代理层,或者别的东西完全?有哪些利弊?
解决方案
FiveRuns有一名宝石 DataFabric 这并应用一级的分区和主/从复制。这可能是值得检查。
其他提示
我假设有碎片我们谈的是水平划分和不垂直划分(这里的维基百科上的差异).
第一, 伸展的垂直划分 你可以尽可能把它在你考虑的水平划分。它很容易在轨道,具有不同的模型指向不同的机器和轨道站,这会带给你远远不够的。
横向分区,在一个理想的世界,这将是处理在 应用层 在轨道上。但是,尽管这并不难,这是不平凡的在轨道,并通过你需要的时间,通常的应用程序已经超越了点,这是可行的,因为你有Email电话撒的地方。没有一个、开发或管理,喜欢工作在它之前你需要它,因为每个人都会而不是工作在功能上的用户现在使用,而不是在划分可能不会发挥作多年之后你的业务具有爆炸。
Email层...不容易从什么我可以看到。将需要大量的猴子修补入轨道内部。
在 斯波克 我们结束了处理这种使用 定义MySQL代理 和打开来源,它在SourceForge作 史巴克代理.Email认为它在说一个数据库机器在现实中,它在说话的代理,后者然后会谈到一个或多个MySQL数据库融合/排序的结果,并返回他们Email.只需要一些改变你的轨代码。看看史巴克代理SourceForge页的更多详细信息,并为我们的原因为走这条路。
对于那些你喜欢我谁没有听说过的碎片:
http://highscalability.com/unorthodox-approach-database-design-coming-shard
连接轨的多个数据库是不是什么大不了的-你只有一个Email类为每个碎片,可复盖的连接性。这使得它很简单的如果你需要做跨碎片的呼吁。然后你只需要编写一个小的代码时你需要打电话之间的碎片。
我不喜欢汉克的想法的分轨情况下,因为看来具有挑战性的对话代码之间的实例,除非你有一个很大的共用图书馆。
你也应该看做喜欢的东西 受虐狂 在你开始之前分片。
对于轨的工作与复制的环境中,我建议使用my_replication插件,它有助于开关的数据库连接到一个奴隶在运行时间
我认为,最简单的办法是保持1:1之间的轨道实例和数据库的碎片。