Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数据库文本列检索速度与磁盘上引用文件的比较_Php_Mysql_Performance_Blob_Clob - Fatal编程技术网

Php 数据库文本列检索速度与磁盘上引用文件的比较

Php 数据库文本列检索速度与磁盘上引用文件的比较,php,mysql,performance,blob,clob,Php,Mysql,Performance,Blob,Clob,获取大块文本的更快方法是:从数据库中提取,还是只提取一个引用ID,然后在磁盘上查找该ID的文本文件?两者都需要读取磁盘 我有一个数据库,有很多文本列,大多数包含短字符串,但有一个字段特别需要LONGTEXT格式,我经常需要将这些列组合在一起,并将文本从数据库中拉出,以便进行额外处理,以获取文本的统计信息等。目前,此操作需要相当长的时间,即使使用正确的索引和orderbynull来停止排序。我已经为PHP构建了一个并行处理体系结构,因此,如果从文件系统完成此任务,则可以通过运行多个辅助脚本来执行此

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


我有一个数据库,有很多文本列,大多数包含短字符串,但有一个字段特别需要
LONGTEXT
格式,我经常需要将这些列组合在一起,并将文本从数据库中拉出,以便进行额外处理,以获取文本的统计信息等。目前,此操作需要相当长的时间,即使使用正确的索引和
orderbynull
来停止排序。我已经为PHP构建了一个并行处理体系结构,因此,如果从文件系统完成此任务,则可以通过运行多个辅助脚本来执行此任务,从而进一步加快速度。

您的答案:content server上的文件

为什么?

  • 您可以利用php并行处理设置

  • (当您在DBMS中使用大型文本字符串进行此操作时,您会将大部分工作负载放在MySQL服务器上,而MySQL服务器是最稀缺的资源。这是造成瓶颈的公式。)

  • 您可能已经发现,使用
    LONGTEXT
    项获取结果行的php代码是一个令人头疼的问题。相比之下,读取文件很容易。容易就是好。容易通常意味着可靠

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

  • 通过处理数以百万计的图像和/或其他媒体文件的web属性,这一切都被证明可以大规模工作。另外,WordPress是这样做的,这意味着它的部署非常广泛