数据库分片策略

时间:2010-09-05 10:28:17

标签: mysql sharding

我想将产品表拆分成许多较小的产品表,并将表放在不同的服务器中。 但是我遇到了一些问题:如果我用产品ID分割数据库。当有人列出一个产品类别时,如何让所有产品属于某些类别。任何人都有一个好的理想?

2 个答案:

答案 0 :(得分:0)

这是一个很好的问题。如果您想要做的就是将一些记录放在另一个数据库中,并且您不打算在任何其他表上与这些记录进行连接,那么是的,您只需告诉您的应用程序在分片1中插入记录1-10000并且在碎片2中为10001 -20000.但是如果你想从碎片1到碎片2进行查询,那将无法工作,你将需要一个像dbShards这样的产品。 dbShards是一个很好的分片工具,并且有很好的评论。此外,他们还将帮助您为您的应用程序开发整体分片策略。

希望有所帮助。

答案 1 :(得分:0)

分片的基本问题总是一样的:你从一开始就不知道如何分片。

如果你在表格中没有1亿行,那么很明显你不需要打扰分片。碎片无法解决任何类型的查询性能。

我曾经尝试过一次猜测数据库中流行和有问题的内容并且惨遭失败。现在我明白我需要在发生问题时解决这个问题,我需要编写好的和干净的代码,以便将来进行这样的更改(例如检查存储库模式)。

关于数据库性能的基础知识也很好。添加到那个修复慢速查询(慢速日志是一个很好的起点)并忽略连接操作。