数据库文本列检索速度VS磁盘上的引用文件

时间:2017-07-12 09:08:53

标签: php mysql performance blob clob

获取大块文本的速度有多快:从数据库中提取,或者只是提取引用ID然后在磁盘上找到该ID的文本文件?两者都需要读取磁盘...

我有一个包含大量文本列的数据库,大多数包含短字符串,但是一个字段特别需要LONGTEXT格式化,我经常需要将这些字符串组合在一起并将文本从数据库中拉出来以获取额外的处理以获取有关文本的统计数据等。目前,这项操作需要相当长的时间,即使正确的索引和ORDER BY NULL被引入以阻止排序发生。我已经为PHP构建了一个并行处理体系结构,因此,如果从文件系统完成此任务,可以使用多个工作脚本运行,以加快速度。

1 个答案:

答案 0 :(得分:1)

您的回答:内容服务器上的文件。

为什么呢?

  1. 您可以利用您的php并行处理设置。

  2. (当您在DBMS中使用大文本字符串时,您将大部分工作量放在MySQL服务器上,这是您最简单的资源。这是一个创建瓶颈的公式。)

  3. 您可能已经发现使用LONGTEXT项获取结果行的PHP代码是一个痛苦的问题。相比之下,阅读文件很容易。容易是好的。容易通常意味着可靠。

  4. 您是否必须将这些文件提供给网络浏览器?如果是这样,您的Web服务器(apache或nginx)可以做到这一点。您的PHP代码唯一需要的是生成正确的超链接的方法。

  5. 这一切都被证明可以通过处理数百万图像和/或其他媒体文件的网络媒体资源大规模运作。另外,WordPress也是这样做的,这意味着非常广泛部署。