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