我想用一个具体的例子来问这个问题,因为我正在寻找一个具体的答案。:) 假设我有一组 MySQL 数据库在 user_id 上分片。例如,ID 为 1-10000 的所有用户都将进入数据库 D1,用户 ID 为 10001 - 20000 的用户将进入数据库 D2,依此类推。我的 RoR 应用程序中有一个模型“用户”。根据 user_id 需要哪些信息,此模型应查询适当的数据库并返回结果。任何 RoR 专家都可以告诉我们如何使它成为可能吗?
一个相关的问题是,假设我在运行 MySQL 的同一个盒子上创建了 N 个数据库 D1、D2 ... DN,并在这些数据库的前面创建了一个 memcached 缓存层。以这种方式构建数据库会导致性能下降吗?(我担心在 DB 层和 memcache 层会有很多缓存未命中。)