基于主键的数据分发

时间:2012-01-19 03:38:01

标签: database key

目前在我的一个项目中,我们支持32k实体,但它已达到性能极限,因此我们考虑根据其整数主键将其分发到不同的数据库。例如。第一个35k将转到一个db,下一个35k转到下一个db,依此类推(基于(主键%#db)逻辑)。

但是,当我们将实体插入db时,这会出现问题。由于我们事先并不知道它的主键值,我们如何确定将哪个数据库插入?

一种可能性是仅在一个db中维护一个全局id表。所以我们首先插入它,获取主键值,然后使用它来选择数据库以进一步详细插入。但是这种解决方案并不统一,因此难以维护和扩展。那么关于如何去做的任何其他想法?

1 个答案:

答案 0 :(得分:0)

找到这篇很好的文章,讨论Flickr如何解决这个问题: http://code.flickr.com/blog/2010/02/08/ticket-servers-distributed-unique-primary-keys-on-the-cheap/