获取大块文本的速度更快:从数据库中提取,还是仅提取引用 ID,然后在磁盘上查找该 ID 的文本文件?两者都需要读取磁盘...
我有一个包含大量文本列的数据库,其中大多数包含短字符串,但有一个字段特别需要 LONGTEXT
格式,并且我经常需要将这些文本分组在一起并将文本从文本中提取出来。用于额外处理以获取有关文本的统计信息等的数据库。目前,即使使用正确的索引并抛出 ORDER BY NULL 来阻止排序发生,此操作也需要相当多的时间。我已经为 PHP 构建了一个并行处理架构,因此如果从文件系统完成此任务,则可以通过运行多个工作脚本来执行,以进一步加快速度。
最佳答案
您的答案:内容服务器上的文件。
为什么?您可以利用您的 php 并行处理设置。
(当您在 DBMS 中使用大型文本字符串时,您会将大量工作负载放在 MySQL 服务器上,这是您最稀缺的资源。这就是创建瓶颈的公式。)
您可能已经发现,用于获取包含
LONGTEXT
项的结果行的 php 代码非常令人头疼。相比之下,读取文件很容易。容易就是好的。简单通常意味着可靠。您是否必须将这些文件传送到网络浏览器?如果是这样,您的 Web 服务器(apache 或 nginx)可以做到这一点。您的 PHP 代码唯一需要的是生成正确超链接的方法。
这一切都已被可处理数以百万计的图像和/或其他媒体文件的网络属性证明可以大规模运行。另外,WordPress 就是这样做的,这意味着它的部署非常广泛。
关于php - 数据库文本列检索速度 VS 磁盘上引用的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45053277/