我打算在 php 中创建一个动态列表,为此我有一个纯文本文件,每行都有一个列表元素。每行都有一个字符串,在呈现最终的 html 文档之前需要将其解析为几个较小的块。
上次我做了类似的事情,我使用了一个 file() 函数将我的文件加载到一个数组中,但在这种情况下,我有一个 12KB 的文件,超过 50 行,随着时间的推移肯定会变得更大。我应该将文件中的条目加载到 SQL 数据库以避免性能问题吗?
是的,将信息放入数据库。不是出于性能原因(就顺序读取而言),因为一个 12KB 的文件将被非常快速地读取,而是关于解析成单独块的部分。将这些块放入数据库表的列中。它将使整个编程过程更快,具有更大的灵活性。
将内容分解为格式正确的数据库 - 几乎 - 总是一个好主意,并且会节省性能。
然而,50 行是非常少的(即使是几百行也是非常小的)。快速计算一下,12KB / 50 行告诉我每行平均只有大约 240 个字符。
我怀疑处理量(甚至几倍)是否会对性能造成足够大的影响而引起恐惧,除非这是一个超高性能的站点。
虽然 50 行看起来并不算多,但最好现在使用数据库而不是稍后再进行更改。您必须记住的一个想法是,使用数据库不会立即消除性能问题,但可以帮助您更好地利用资源。事实上,您也可以使用文件编写类似优化的进程,除了 I/O 差异外,它们的工作方式几乎相同。
我重新阅读了这个问题,您意识到您可能意味着您每次都会将文件加载到数据库中。我看不出这有什么帮助,除非您将数据库用作一种缓存形式以避免重复命中文件。最终,从文件或数据库读取只会在脚本如何使用 I/O、磁盘缓存等方面有所不同……您在列表中所做的处理可能会在这里产生更大的不同。