与Facebook一样,每个人都在墙上留言。所有消息都只存储在一个表中吗?加载页面时它只会显示属于用户ID的消息?如果是这样的话,那么这张桌子上会有很多行。一个表中的行是否有限制?关于社交网站数据库的问题
或者每个用户有一张表只存储自己的消息?
与Facebook一样,每个人都在墙上留言。所有消息都只存储在一个表中吗?加载页面时它只会显示属于用户ID的消息?如果是这样的话,那么这张桌子上会有很多行。一个表中的行是否有限制?关于社交网站数据库的问题
或者每个用户有一张表只存储自己的消息?
或者每个用户都有一个表只存储 自己的邮件?
这不是一个好主意,你可能会得到很多表格。很多行比较好。
我会简单地使用一个“表”,它将message_id
与user_id
配对并带有适当的索引,以快速查找归因于特定用户的消息。
表中有一行 是否有限制?从MySQL 5.1 Features
报价:
支持大型数据库。我们使用 MySQL服务器和 包含5000万条记录的数据库。我们也知道 的用户谁使用MySQL服务器 有200,000个表和大约 5,000,000,000行。
据我所知,Facebook的墙根本不存储在MySQL中。他们使用卡桑德拉 - 一个Apache的NoSQL数据库,我认为,并成为NoSQL的它采用完全不同的理念比
相对
关系数据库(如MySQL)
http://en.wikipedia.org/wiki/Apache_Cassandra
他们使用MySQL的其他数据虽然。
也看到类似的问题(回答)在这里:
很多表和动态SQL,因为SQL不允许动态的FROM或JOIN子句... – 2010-08-15 21:30:18