我自动链接配置文件在我的博客文本,其中包含配置文件的名称现有的网站。所以我。。。
1) …使用4个单独的查询,从一个数据库中的4个不同的mysql表(包含不同类型的概要文件)中提取约500行(仅?)。
2) …str\u replace()每个配置文件名在blogpost文本中单独使用一个链接,如果该配置文件名存在(之前尝试将它们放入search replace数组中,并执行单个str\u replace()操作)。
当它做它应该做的事情时,它显著地减慢了blogpost概述页面的速度。在overview页面上加载10篇文章,其中每个内容都会根据出现的配置文件名进行检查,加载需要30秒以上的时间。如果没有这个完整的自动链接过程,blogpost概述页面将很快加载。
我相信罪魁祸首是第二步)。如何加快在单个文本字符串中查找和替换大量字符串(来自数据库)的过程?
1条答案
按热度按时间suzh9iv81#
按照@devon和@tadman的建议,现在用户有义务注意链接配置文件。然而,我需要的选项,以链接到配置文件不存在的时候,写文章,但可能会创建以后。现在,用户在写文章时,通过在大括号中包含自己的名字来标记任何现有或未来的个人资料。可以通过执行preg\u replace\u回调并在数据库中搜索大括号内的概要文件名来找到它们。
在我以前的ressource-ansatz中,数据库中有多达5n个str\u-replace调用,因为考虑了配置文件名称的变化。现在,对于post文本中标记的n个概要文件,最多有n到4n个数据库调用,因为可能需要搜索位于单个db表中的4种不同概要文件类型。新方法将blog加载时间缩短到3s左右,比原方法提高了10倍以上。