首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法提高PHP的整洁功能的性能?

有没有办法提高PHP的整洁功能的性能?
EN

Stack Overflow用户
提问于 2014-07-18 12:18:59
回答 1查看 328关注 0票数 0

我想问您,您是否知道如何提高PHP整洁功能的性能?

现在像这样使用它:

代码语言:javascript
复制
while($ds = mysql_fetch_assoc($qry))
{
    $tidy = tidy_parse_string($ds['description']);
    $html =  tidy_parse_string($tidy, array('show-body-only'=>true, 'indent'=>true));
    $sql = "UPDATE tbl_*** SET description = '".mysql_real_escape_string($html)."' WHERE id = '".mysql_real_escape_string($ds2['id_artikel'])."'";
    sql4query($sql);

    $allerr = $allerr + tidy_error_count($tidy);
    $allwar = $allwar + tidy_warning_count($tidy);
    $msg .= $ds['id'].":\n".$tidy->errorBuffer."\n\n\n";
}

但是它太慢了,有超过一千万个数据集。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-18 13:12:21

正如其他人已经说过的,可能没有合理的方法让整洁的扩展更快地完成它的工作。

问题是我得把这些记录清理一次。新的将通过插入数据库来清除。

那么,我们谈论的“旧”唱片有多少--数千张,一万张,…?

如果你不能“一步一步地完成”(cronjob,没有执行时间限制,在维护阶段“通宵”运行)--那么另一种方法是在第一次“需要”时单独完成每一次记录。

将列添加到表、still_needs_to_be_cleaned或其他地方,并将其设置为true/1,用于所有现有记录。插入新记录时,只需将其设置为false/0。

现在,当请求一个记录(由站点的访问者请求)时,您检查标记still_needs_to_be_cleaned是否仍然设置为true --如果是的话,您允许在该单个记录上进行整齐运行,然后在数据库中更新它--在此过程中将still_needs_to_be_cleaned设置为false。

如果该记录已经将still_needs_to_be_cleaned设置为false --那么不需要进行任何整洁的操作,也不需要更新,那么您可以立即输出该记录。

是的,这将意味着对第一个请求特定记录的用户来说会有很小的延迟--但最有可能的是,这很难被注意到,如果有的话。

如果您愿意,您甚至可以不时地检查有多少记录仍然将still_needs_to_be_cleaned标志设置为true。如果没有剩下的,您可以再次删除这个额外的逻辑。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24824877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档