我将PHP和MySQL用于社交网络系统
我有一个名为member_feed的MySQL表,在这个表中我保存了每个成员的提要,我的表结构是:
|member_feed_id | member_id | content_id | activity_id |
在这张表中我有超过1.2亿条记录,每个成员都有记录。
我目前正在从MySQL迁移到MongoDB,而且我是MongoDB的新手。所以我需要将此表转换为MongoDB中的集合。我想为 member_feed 表建立我的集合,例如:
1- member_feed 表中的每一行作为文档,例如:
{ "member_id: 1" , "content_id: 10" , "activity_id: 1" },
{ "member_id: 1" , "content_id: 11" , "activity_id: 2" },
{ "member_id: 1" , "content_id: 12" , "activity_id: 3" },
{ "member_id: 2" , "content_id: 9" , "activity_id: 4" },
{ "member_id: 2" , "content_id: 11" , "activity_id: 5" },
{ "member_id: 2" , "content_id: 14" , "activity_id: 6" }
所以这个收藏将有1.2亿条记录
2-具有成员 ID的文档的所有成员提要和该成员的所有提要
{
member_id: '1',
feeds: [
{ content_id: '10', 'activity_id' : 1 },
{ content_id: '11', 'activity_id' : 2 },
{ content_id: '12', 'activity_id' : 3 }
]
member_id: '2',
feeds: [
{ content_id: '9', 'activity_id' : 4 },
{ content_id: '11', 'activity_id' : 2 },
{ content_id: '14', 'activity_id' : 6 }
]
}
所以当我需要在他的仪表板上查看用户提要时,我会这样做:
1-通过 member_id从mongoDB中的文档中获取所有id$contentIdsFromMongo
2- 在 MySQL 中运行查询以获取类似的内容
select * from content where content_id in($contentIdsFromMongo);
和$contentIdsFromMongo我有10000 个 ids,所以这对 MySQL 性能有影响。
我在服务器上有 mongoDB,在另一台服务器上有 MySQL
并且系统每秒都会为每个成员插入大量记录,因此我需要文档能够执行所有操作,例如(插入、更新、选择、..)
为每个成员创建集合中的文档的最佳方法是什么,这种方式对于使用 mongoDB 是对还是错
谢谢。