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

标签 php mysql performance blob clob

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

我有一个包含大量文本列的数据库,其中大多数包含短字符串,但有一个字段特别需要 LONGTEXT 格式,并且我经常需要将这些文本分组在一起并将文本从文本中提取出来。用于额外处理以获取有关文本的统计信息等的数据库。目前,即使使用正确的索引并抛出 ORDER BY NULL 来阻止排序发生,此操作也需要相当多的时间。我已经为 PHP 构建了一个并行处理架构,因此如果从文件系统完成此任务,则可以通过运行多个工作脚本来执行,以进一步加快速度。

最佳答案

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

为什么?

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

  2. (当您在 DBMS 中使用大型文本字符串时,您会将大量工作负载放在 MySQL 服务器上,这是您最稀缺的资源。这就是创建瓶颈的公式。)

  3. 您可能已经发现,用于获取包含 LONGTEXT 项的结果行的 php 代码非常令人头疼。相比之下,读取文件很容易。容易就是好的。简单通常意味着可靠。

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

  5. 这一切都已被可处理数以百万计的图像和/或其他媒体文件的网络属性证明可以大规模运行。另外,WordPress 就是这样做的,这意味着它的部署非常广泛。

关于php - 数据库文本列检索速度 VS 磁盘上引用的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45053277/

相关文章:

php - htmlspecialchars 符号

php - 如何在 PHP Web 应用程序中管理度量单位?

mysql - SQL 查询 : Join causes triplicate result

c# - 使用方法 'mysql_native_password'失败

c++ - (最好是提升)无锁数组/vector/ map /等?

php - 如何将带有数据的 http header 发送到 rest Api codeigniter?

php - 从 Zend Framework 应用程序中的 Bootstrap.php 获取返回值

php - HTML下拉列表使用PHP和MySQL填充

performance - Await在测试用例中是否有开销

java - 在读取小长度字节时,使用 DataInputStream 读取性能较慢