问题声明:我正在开发一个应用程序,其中用户可以关注其他用户(如Twitter或其他电子商务网站)并在墙上获得更新。与商家和用户的关系。用户可以跟随任何商家。用户自己可以是商家,所以实际上它就像一个用户跟随其他用户(许多许多实际情况)。使用PHP mysql水平扩展数据库
问题:去做最简单的方法是让这将有 ID(自动递增)结合表| follower_user_id | followed_user_id。但是我不确定数据库的垂直增长情况,它会如何扩展。如果用户跟随100人,那么对于单个用户将有100个条目。在这种情况下,如果我想获得任何用户的关注者,则需要更长的时间查询执行的时间。
研究:我想学习Twitter和其他网站和数据库设计,但它们使用不同的数据库,如基于图形的NoSQL等,以解决他们的problems.In我们的情况下,其Mysql.I还去有关使用的缓存机制,但我会想知道,如果有任何方法可以水平存储值,即每个用户都有一个单行的跟随者(逗号分隔将是我试过的单调乏味)。
我可以为此功能提供单独的数据库,如基于Nosql的数据库(mongo等)。它会对不同情况下的执行力产生什么影响?
如果我采用easiset方式进行操作的方法是正确的,那么如何提高5-10k用户的性能(现在查看一个小型基数)?基本mysql查询是否工作正常?
请帮助我输入相同。
这与横向缩放无关;水平缩放是关于使用多个mysql服务器进行负载平衡 – 2013-04-29 09:56:26
您是否已经完成了任何测试以查看数据库如何响应很多行?如果你使用索引,那么即使有数百万行,你仍然可以得到快速响应。使用模拟数据和查询进行测试是我处理这个问题的方式。 – gunnx 2013-04-29 09:57:29
如果你在'follower_user_id'和'followed_user_id'上索引,查询应该没问题。 MySQL可以处理数百万和数百万行。 – MatthewMcGovern 2013-04-29 09:58:10