gpt4 book ai didi

PHP 从外部数据库中选择非常慢

转载 作者:行者123 更新时间:2023-11-30 00:35:14 26 4
gpt4 key购买 nike

我正在 PHP 中对外部 MySQL 数据库运行一个简单的查询:

$sql = "SELECT COUNT(id) as n FROM `call_history` where extension_number = '0536*500' and flow = 'in' and DATE(initiated) =\"{$initiated}\"";
$rs=mysql_query($sql,$pbx01_conn);
$rs = mysql_fetch_row($rs);
echo $rs['n'];

这似乎需要永远运行,此表中大约有 4000000+ 行。

我没有数据库的完全写入权限,只有读取权限。我可以做些什么来加快查询速度吗?

最佳答案

您无法按照当前的结构方式在上次过滤条件上使用索引。

通过将 DATE(initied) 与您的输入值进行比较,您将禁止在 initiated (我假设是时间戳或日期时间字段)和触发器上使用索引全表扫描,因为必须计算比较值。

针对您的最后一个条件尝试这样的操作:

AND initiated BETWEEN '? 00:00:00' AND '? 23:59:59'

在哪里?YYYY-MM-DD格式的变量。

一旦您修复了该问题,您只需确保在extension_number、flow,当然还有initated`上有索引。如果没有这些索引,您就无法完全优化查询。因此,如果您对该表没有写访问权限并且这些索引丢失,则应该与具有该写访问权限的人员联系,看看是否可以添加索引(请注意,添加索引会影响表的插入性能)。

关于PHP 从外部数据库中选择非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22236255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com