我想知道您对将聊天信息存储在数据库中的看法。 我需要能够绑定其他内容(如文件或联系人),使用数据库是目前我所见的最好方式。 同样的问题也出现在文件上,因为它们可以与聊天消息绑定,我也必须将它们存储在数据库中。 有数千条消息和文件时,我担心会影响性能并增加数据库大小。 考虑到我正在使用PHP与MySQL/Doctrine,您认为怎么样?
我认为只要您正确地构建数据库,就可以在数据库中存储任何文本信息(如名称、消息历史记录等)。我曾在访问量达到数千次的大型网站和电信公司工作过,这些公司将有关用户的信息(包括流量统计)存储在已经增长到数百GB的数据库中,应用程序运行良好。但是对于像图像和文件这样的二进制信息,最好将它们存储在文件系统中,并仅在数据库中存储其路径,因为从磁盘读取它们比将数据库进程绑定到读取多兆字节文件更便宜。正如我所说,重要的是您要做几件事情:1.正确地设计您的数据库结构,将其分成表和字段,并考虑性能目标,因为这将构成应用程序和查询的基础。如果出错,您的查询将变慢。2.针对每个表进行适当的表引擎决策。这是一个重要的步骤,因为它将极大地影响您的查询性能。例如,MyISAM在更新表时阻止读取访问。对于社交网络或新闻网站等Web应用程序来说,这将是一个问题,因为在许多情况下,您的用户基本上必须等待信息更新完成,然后才能看到生成的页面。3.创建适当的索引-对于快速增长的大型数据库的应用程序尤其重要。4.随着数据量的增长,测量查询性能并寻找改进方法-您总会发现必须消除的瓶颈,这是一个不断进行的持续过程。每个流行的Web应用程序都必须这样做。