我想将产品表拆分为许多较小的表,并将表放在不同的服务器中。但我有一些问题:如果我使用产品 ID 对数据库进行分片。当有人列出一个产品类别时,我怎样才能让所有产品都属于某些类别。有人有好的理想吗?
问问题
332 次
2 回答
0
这是一个很好的问题。如果您想要做的只是将一些记录放在另一个数据库中,并且您不会与任何其他表上的这些记录进行连接,那么是的,您所要做的就是告诉您的应用程序在分片 1 中插入记录 1-10000和分片 2 中的 10001 -20000。但是,如果您想从分片 1 到分片 2 进行查询,那将不起作用,您将需要像dbShards这样的产品。dbShards 是一个很好的分片工具,好评如潮。他们还将帮助您为您的应用程序开发整体分片策略。
希望有帮助。
于 2011-04-20T15:22:39.027 回答
0
分片的基本问题总是一样的:你从一开始就不知道如何分片。
如果您的表中没有 1 亿行,那么很明显您不需要分片。分片不能解决任何类型的查询性能。
我曾经尝试过猜测什么会在 DB 中流行和存在问题,但惨遭失败。现在我明白了当它发生时我需要解决这个问题,我需要编写好的和干净的代码以在将来进行这样的更改(例如检查存储库模式)。
关于数据库性能的基本知识也很好。添加到修复慢查询(慢日志是一个很好的起点)并忽略连接操作。
于 2015-07-12T21:58:29.203 回答