我打算在php中创建一个动态列表,为此我有一个纯文本文件,每行都有一个列表元素。每行都有一个字符串,需要在渲染最终的html文档之前将其解析为几个较小的块。
上次我做了类似的事情,我使用了一个file()函数将我的文件加载到一个数组中,但在这种情况下,我有一个12KB的文件,其中包含超过50行,这肯定会随着时间的推移而变大。我应该将文件中的条目加载到SQL数据库以避免性能问题吗?
答案 0 :(得分:1)
是的,将信息放入数据库。不是出于性能原因(在顺序读取方面),因为12KB文件将被非常快速地读取,但是关于解析成单独块的部分。将这些块放入数据库表的列中。它将使整个编程过程更快,更灵活。
答案 1 :(得分:0)
打破正确格式化的数据库 - 几乎 - 总是一个好主意,并将成为一个性能保护程序。
然而,50行很小(甚至几百行也很小)。一些快速的数学运算,12KB / 50行告诉我每行平均只有大约240个字符。
我怀疑,除非这是一个超级高性能的网站,否则处理量(甚至数倍)将会导致严重的性能损失。
答案 2 :(得分:0)
虽然50行似乎不太多,但现在使用数据库而不是稍后进行更改是个好主意。有人认为您必须记住,使用数据库不会直接消除性能问题,而是帮助您更好地利用资源。实际上,您也可以使用文件编写类似的优化过程,除I / O差异外,它们的工作方式大致相同。
我重读了这个问题,您意识到您可能意味着每次都会将文件加载到数据库中。除非您使用数据库作为缓存形式以避免重复命中文件,否则我看不出这有什么用。最终,从文件或数据库中读取只会在脚本使用I / O,磁盘缓存等方面有所不同......您在列表上执行的处理可能会在这里产生更大的不同。