ai didi

php - 如何让 php 中的 mysql 查询运行得更快

转载 作者:行者123 更新时间:2023-11-29 08:22:01 24 4
gpt4 key购买 nike

我正在一个有数千行的表上运行查询:

$sql="select * from call_history where extension_number = '0536*002' and flow = 'in' and DATE(initiated) = '".date("Y-m-d")."' ";

并且需要很长时间才能返回结果。

SQL 本身是

 select * 
from call_history
where extension_number = '0536*002'
and flow = 'in'
and DATE(initiated) = 'dateFromYourPHPcode'

有什么办法可以让它运行得更快吗?我应该把 DATE(initiated) = '".date("Y-m-d")."' 放在哪里之前extension_number where 子句?

或者我应该选择 DATE(initiated) = '".date("Y-m-d")."' 所在的所有行并将其放入 while 循环中,然后运行我所有其他查询 (where extension_number = ...) while 循环是什么?

最佳答案

以下是一些建议:

1) 将 SELECT * 替换为您想要的唯一字段。

2) 在您想要作为输出的表字段上添加索引。

3) 避免在循环中运行查询。这会导致向 SQL Server 发出多个请求。

4)一次性获取所有数据。

5) 根据需要应用LIMIT 标记。不要选择所有记录。

6) 触发两个不同的查询:一个用于计算记录总数,另一个用于获取每页的记录数(例如 10、20、50 等...)

7) 如果适用,创建数据库 View 并从中获取数据而不是表。谢谢

关于php - 如何让 php 中的 mysql 查询运行得更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19092598/

24 4 0
文章推荐: mysql - 无法使用 mysql Chef Cookbook 覆盖 mysql 数据库
文章推荐: mysql - where 查询将字段从人类日期转换为 unix 时间戳并确保仅在上个月
文章推荐: mysql - 如何通过主键获取列组中唯一值的计数
文章推荐: php - mysql_affected_rows 在 foreach 循环中没有给出所需的结果
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com