gpt4 book ai didi

mysql - MySQL存储过程或查询中的循环信息请求

转载 作者:行者123 更新时间:2023-11-29 00:45:02 24 4
gpt4 key购买 nike

在我的脚本中,我需要通过日常流量消耗从数据库(带有 httpd 日志文件)接收信息。

所以,如果是一个月中的第 30 天,我将使用以下代码执行此操作,循环 30 次:

$sql = "SELECT round(sum(bytes)/1048576) FROM logdata WHERE time_stamp BETWEEN '2012-" .$aMonth . "-" . $aDay ." 00:00:00' AND '2012-" .$aMonth . "-" . $aDay ." 23:59:59' AND status=200";

它运行起来相当慢。

我认为,可以通过存储过程或查询在一个结果集中接收所有日期的所有结果。

有人能帮帮我吗?谢谢。

最佳答案

您要做的第一件事是找出缓慢的根源。基本上通常有两种可能性:

  1. 您的SELECT-语句“慢”,
  2. 你的脚本很慢。

如果您的脚本很慢,请发布更多该脚本,以便人们分析。

如果您的 SELECT 语句“慢”,请首先查看数据库和表定义。 time_stampstatus 字段是否已编入索引?这两个字段的索引几乎肯定会显着提高语句性能。

如果它很慢是因为你用不同的值调用语句 30 次,也许尝试在一个语句中接收你的数据,它可能看起来像这样:

SELECT  DATE_FORMAT(time_stamp, "%y-%m") AS "_month",
DATE_FORMAT(ROUND(SUM(bytes)/1048576)
FROM logdata
WHERE time_stamp BETWEEN '2012-01-01 00:00:00' AND '2012-01-31 23:59:59'
AND status=200
GROUP BY _month;

关于mysql - MySQL存储过程或查询中的循环信息请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10861283/

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