Ran*_*lez 17 php mysql sql database database-design
我目前正在计划PHP/MySQL中的新系统,并希望确保我的数据库可以处理我计划存储的数据量.我的新项目的一个特点是像Facebook这样的"消息"功能.我想确保为最终用户创造最佳体验.该网站最终将处理1000个用户,并可能共有数百万条消息.什么是数据库设计的最佳方法?MySQL甚至是正确使用的数据库吗?
zom*_*bat 16
只要您正确设计数据库,MySQL对数百万或数亿条记录没有任何问题.
话虽如此,"像Facebook这样的消息功能"是一个相当广泛的定义.通常,您将定义一个messages表,将每条消息链接到创建它的用户(即,userId在messages表中有一列).如果您希望将消息发送给多个用户,则可以message_recipients通过存储由messageIda和a 组成的多个记录来定义一对多关系recipientId.为这些表添加适当的索引,你就是那里的80%.
话虽这么说,剩下的20%可能是一个杀手.不幸的是,您如何使用数据库将决定您还需要做什么,在做出判断之前,您必须提供有关应用程序的更多详细信息.例如,您可能希望考虑使用自动归档解决方案来保持主表相对较小,并将旧数据移动到可以在必要时访问的备份表.您可能不会立即需要它,但它可能在将来有所帮助.
Dan*_*llo 11
Facebook最初使用的是MySQL,当他们拥有超过1亿用户的7TB收件箱数据时,他们才转移到Cassandra.
资料来源:Lakshman,Malik:Cassandra - 分散式结构化存储系统.
如果您计划处理大量数据(当然数百万甚至没有接近合格的数据),那么聘请数据库专业人员.针对大型数据集的高效且有效的数据库设计是一个复杂的问题,需要专家.
回答你的问题是,如果设计很好,mysql可以轻松处理数百万条记录,如果设计不好,将会成为一场噩梦,就像任何其他现代数据库一样.