我应该在数据库中还是在XML或文本文件中存储值?

时间:2011-09-27 12:46:53

标签: mysql xml database performance

我在开发的网站上有一些关于数据存储的简单问题。有问题的网站将允许用户拥有个人资料空间,他们可以使用文本,图像,BB代码等进行自定义。这些配置文件将具有大约5000的字符限制。我想知道如何最好地存储这些数据,因为它似乎是存储在数据库中的大量数据。

我在考虑使用简单的文本文件存储数据,并使用用户ID命名。你认为什么是最好的访问和写入速度,它会降低数据库的读/写性能;因为查看和更新​​个人资料将成为网站的重要组成部分。

谢谢你们。我期待听到你的意见。

4 个答案:

答案 0 :(得分:2)

如果您已经在使用数据库,那么将它存储在那里会容易得多。 5000个字符都不算什么。表现似乎与此无关。

答案 1 :(得分:2)

我会将它们存储在数据库中,因为:

  1. 数据库中的所有数据都可以使用事务来保持内容的一致性;
  2. 单个插入(事务)将满足您的所有存储需求;
  3. 单个选择将检索所有数据;
  4. 备份数据库,你就完成了;
  5. 如果遇到缓慢,建立主从方案或分区很容易;
  6. 您可以使用数据库工具搜索数据;
  7. 另一方面,如果您使用文件系统:

    1. 文件系统没有事务,如果插入失败会发生什么,并且您需要回滚,文件已经保存;
    2. 如果文件系统与数据库不同步会怎样?
    3. 使代码复杂化,增加了bug压力;
    4. 写入文件系统会增加额外的安全漏洞,因为您的DB-app现在可以编写并可能覆盖文件系统上的现有文件。
    5. 更一般
      使用文件系统是因为在db中存储大blob可能很慢 但是,在慢速设置之前,您不应优化。Premature optimization is the root of all evil.
      缓慢可能永远不会成为问题,此外您还可以在数据库中进行大量优化。

答案 2 :(得分:2)

将这样的内容保存到数据库中可能是最好的选择。在你拥有至少兆字节大小的文件之前,任何体面的数据库都应该处理它们。

答案 3 :(得分:1)

配置文件信息是否与现有数据库信息完全相关?配置文件信息的结构是完全规则的,还是用户对其个人资料的结构有一定程度的控制?你有多少用户?

如果配置文件信息与数据库的数据库功能完全分开,或者它的结构有多种可变,并且如果您没有足够的文件以免陷入文件系统,那么将其存储在单独的XML文件中是值得的考虑

如果有大量的配置文件,并且信息适合关系存储,那么我可能会把它放在数据库中。如果它与主数据库的功能相关联,那么它可能属于那里。如果没有,您可以考虑仅为配置文件使用单独的数据库。