Php 将查询运行时限制为2秒
如何将使用php文件调用的SQL的运行时间限制为2秒 这里是我正在使用的一个例子Php 将查询运行时限制为2秒,php,sql,limit,Php,Sql,Limit,如何将使用php文件调用的SQL的运行时间限制为2秒 这里是我正在使用的一个例子 $output = ''; $sql = "SELECT epf_application.view_url FROM epf_application INNER JOIN app_uri ON epf_application.application_id=app_uri.application_id WHERE app_uri.uri = '$URL' LIMIT 1"; foreach ($xpdo->qu
$output = '';
$sql = "SELECT epf_application.view_url FROM epf_application INNER JOIN app_uri ON epf_application.application_id=app_uri.application_id WHERE app_uri.uri = '$URL' LIMIT 1";
foreach ($xpdo->query($sql) as $row) {
$output .= $row['view_url'];
}
我不想限制整个脚本运行时,只限制数据库上的请求,你不能因为查询正在阻塞,而您只知道完成查询需要多长时间
因此,如果查询太慢,您需要优化查询。您可以通过分析和测试,在正确的位置使用
索引,并使用解释来实现这一点。应该有明确的文档来设置php.net上SQL调用的超时。您不可能,至少不容易。您的用例是什么,这个查询在做什么?也许你可以把它藏起来?(编辑:啊,这是可能的。如果表中没有匹配的值,我只有一个较长的查询运行时间~4秒。该表最多包含30.000.000行。可能是查询在整个表上运行了多次吗?如果有匹配的值,查询的运行时间会短得多。如果这是真的,我可以使用INDE避免这种行为吗XES?@VolkaRacho在url
上添加一个索引
。可能需要一段时间……我通常将url
与二进制哈希一起存储,并且只按哈希
进行搜索。30000.000行相当多。还要学习解释
的工作原理并尝试优化。@VolkaRacho尝试在表格上进行查询例如SELECT*FROM
url`WHEREurl
='%s'LIMIT 1;`并查看没有JOIN
需要多长时间。通过设置适当的索引解决了这个问题。非常感谢hintah获得了它:0.0010瑞典克朗