php – 针对大型网站的XML与MySQL
对于一个非常大的网站,例如社交网络(比如Facebook),您会建议哪种方法用于存储用户帐户? 1)用户目录中每种功能的单个XML文件:basicinfo.xml,comments.xml,photos.xml,… 2)MySQL,虽然不知道如何组织这个.每个功能可能分开的表格?例如.注释表,其中列是id,from,message,time? 我知道XML不是为存储而设计的,PHP(这是我使用的语言)必须读取整个XML文件并在使用之前存储在内存中. 但是,这就是我更喜欢XML的原因(但我可能错了,如果你不同意,请告诉我): 1)如果我以这种方式组织用户帐户的路径
我认为通过文件路径查找用户的注释比在大型数据库中查找更快. 2)我听说MySQL在写上时被全局锁定.这是真的?如果是,我宁愿锁定单个文件而不是一切. 3)MySQL是否在群集之间“共享”?我的意思是,如果1个磁盘已满,它会在另一个磁盘上“继续”吗?或者,作为程序员,我是否必须自己管理并在另一个磁盘上创建新数据库? (注意,我使用的是Linux) 4)请注意,我没有在comments.xml上存储每个注释.我只是在每个XML标记中记下它们的属性,并且消息在分隔的文本文件commentid.txt中.一旦每个XML不应该太大,就不应该有内存/时间问题. 至于解析整个XML的问题,也许我应该考虑使用XMLReader / Writer而不是SimpleXML / DOM?或者,它会降低性能吗? 谢谢! 最佳答案 Facebook uses MySQL.话虽如此.这是长版本: 我总是说XML是一种数据传输技术,而不是数据存储技术,但不是每个人都同意. XML不是设计用于关系数据存储区.首先引入XML是为了提供一种从系统到系统传输数据的标准方法,无需访问原始系统. 既然你在谈论一个大型应用程序,我强烈建议你使用MySQL(或其他RDBMS),随着数据集的增长和增长,XML将越来越慢,除非你总是在内存中保留一个新的副本并且只读取服务重启时的XML文件. 据报道,当您经常将XML发送到数据库并从数据库中检索XML时,使用XML数据库在转换成本方面更有效.理由是,当XML是用于进出数据库的唯一传输语法时,为什么要通过一层SQL抽象和所有那些关系表,外键等来挤压所有内容?它基本上从应用程序中取出一个解析层并将其带入数据引擎 – 它可能比SQL替代方案更快,更有效地工作.大概. (编辑:西双版纳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |