作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在一个有数千行的表上运行查询:
$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/
我是一名优秀的程序员,十分优秀!