Blu*_*303 11 mysql database-design datafile
让我们想象一个网站,它是一个人的目录。每个人可能有一张个人资料照片和一份传记。
我承认我的SQL查询可能会更好,但一般来说会更快并且使用更少的处理能力。
检查文件是否存在,然后打开它或
检查 MySql 以查看 bio 是否存在并显示它。
我很确定在上述情况下,文件系统会影响 mysql 数据库。
如果我将数据库设为只读分隔的 txt 文件怎么办?
在这种情况下什么更快?
有没有一点,如果txt文件有太多记录,最好使用MySql?
Rob*_*ley 18
如果您要查找特定文件,则文件系统很有用,因为操作系统会维护一种索引。但是,txt 文件的内容不会被索引,这是数据库的主要优点之一。另一个是理解关系模型,这样数据就不需要一遍又一遍地重复。另一个是理解类型。如果您有 txt 文件,则需要解析数字、日期等。
所以 - 在某些情况下,文件系统可能对你有用,但肯定不是全部。
Chr*_*ers 15
这真的取决于你在做什么。一般来说,打开文件进行阅读的速度会比建立网络连接的速度要好。所以对于非常简单的操作,文件系统肯定更快。文件系统也可能会在原始读取吞吐量方面击败 RDBMS,因为开销较少。事实上,如果你仔细想想,就原始吞吐量而言,数据库永远不会比它所在的文件系统快。
对于非常复杂的操作,文件系统可能会非常慢。例如:
从这个 10 亿行文件中读取 10 行,然后在另一个文件中搜索匹配的行。如果你必须这样做,我很同情你。然而,一个好的数据库服务器有策略可以快速而好地完成这项工作,因此您无需重新发明轮子。
此外,您确实需要弄清楚自己在做什么。你存储什么数据?你打算如何改造它?如果它是 100k 图像文件,您的解决方案将与 100k 人的目录看起来非常不同。(也许是 LDAP?或者是 SQL 数据库?取决于你在做什么,也许。)这里的关键是选择与你正在做的事情相匹配的工具,并为你提供增加更多用途的空间,而不是对某些人来说似乎最快的工具相当抽象的用例。数据库是很棒的工具,但是对于这样的问题,您无法得到很好的答案。
最后,过早的优化是万恶之源。现在选择有用的工具,然后再找出其余的。
文件系统最初可能会更快,但我对此表示怀疑。但是,随着数据大小的增加,您可能必须重构文件系统以保持性能。除了它们对多个属性进行索引的明显能力之外,数据库往往可以更好地扩展。
与您正在考虑的工作类似的 Web 缓存使用目录树来保持性能。它们也往往具有相对固定的规模,因此它们不必应对不断增长的规模。
对于这种应用程序,我将从数据库开始,因为它更适合您的需求。从长远来看,它将更好地扩展。与大多数文件系统相比,数据库的空间效率也更高。