Php 存储聊天信息和文件的最佳方式
我想知道你对在数据库中存储聊天信息有什么看法 我需要能够将其他东西绑定到它们(如文件或联系人),使用数据库是目前我看到的最好的方式 同样的问题也出现在文件上,因为它们可以绑定到聊天信息,我也必须将它们存储在数据库中 有成千上万的消息和文件,我想知道性能下降和数据库大小Php 存储聊天信息和文件的最佳方式,php,doctrine,chat,storage,message,Php,Doctrine,Chat,Storage,Message,我想知道你对在数据库中存储聊天信息有什么看法 我需要能够将其他东西绑定到它们(如文件或联系人),使用数据库是目前我看到的最好的方式 同样的问题也出现在文件上,因为它们可以绑定到聊天信息,我也必须将它们存储在数据库中 有成千上万的消息和文件,我想知道性能下降和数据库大小 考虑到我将PHP与MySQL/Doctrine结合使用,您认为如何?我认为像CouchDB或MongtoDB这样的NoSQL数据库是一种选择。您也可以单独存储文件,并通过已知文件名链接它们,但这取决于您的系统体系结构。我认为,如果
考虑到我将PHP与MySQL/Doctrine结合使用,您认为如何?我认为像CouchDB或MongtoDB这样的NoSQL数据库是一种选择。您也可以单独存储文件,并通过已知文件名链接它们,但这取决于您的系统体系结构。我认为,如果数据库结构正确,可以在数据库中存储任何文本信息(名称、消息历史记录等)。我曾为大型网站(每天访问数千次)和电信公司工作,这些公司将用户信息(包括流量统计)存储在数百GB的数据库中,应用程序运行良好 但是对于像图像和文件这样的二进制信息,最好将它们存储在文件系统中,并且只将它们的路径存储在数据库中,因为从磁盘上读取它们(将数据库进程与读取一个多兆字节的文件联系在一起)会更便宜 正如我所说,做几件事很重要:
是的,当然文件不会存储在数据库中,但是有一个条目存储它们的路径对于存储额外的数据并将它们链接到其他实体非常有用。此外,并非所有消息都需要特定的条目,因此最好将“简单消息”重新组合到同一个数据库条目中。我对数据库设计优化不是特别了解,你有相关的链接吗?这里有一些提示:在本演示中,你还可以阅读《MySQL数据库设计与优化:从新手到专业人士》()高性能MySQL()好的,谢谢你的链接,但是你怎么看待优化方面的原则呢?使用ORM处理高频请求是个好主意吗?我还认为,您链接的文档中讨论的许多优化请求都是由条令处理的。欢迎您。如果您需要从系统中挤出每一点性能,最好坚持使用PDO,并在其上专门为您的案例编写自己的自定义数据库处理库。它只比原始mysql_*请求慢一点,而Doctrine和其他ORM会增加很多开销,并且在需要扩展时会成为瓶颈。PDO拥有您所需要的一切,包括mysql_*函数所没有的准备好的语句。它还支持面向对象的接口。另一方面,如果需要的话,使用PDO你可以很容易地从MySQL切换到Oracle。关于优化,最好是自己在“监视器”-“找到瓶颈”-“优化”不间断的循环,而不是依赖于第三方解决方案,因为您应该只实施系统所需的优化,并且在需要时进行优化,而不实施其他优化。有什么特殊原因吗?