有多少sql查询太多了?

时间:2012-12-14 22:01:20

标签: php mysql sql

有多少SQL查询太多了?我有以下代码片段,循环播放28-31次,具体取决于所选月份。它用于根据数据库中的日期更改css类。每次调用$ rows变量时它会重新运行查询吗?这段代码有效吗?

$sql = ("SELECT * FROM dates WHERE dates.from<='".$date."' AND dates.to>='".$date."'");
$result = mysql_query($sql);
$rows = mysql_num_rows($result);
if ($rows >= 1)
{
    $row = mysql_fetch_array($result);

    if ($rows == 2)
        $calendar .= '<td class="calendar-day-booked">';
    else
    {
        if ($row['from'] == $date)
            $calendar .= '<td class="calendar-day-from">';
        elseif ($row['to'] == $date)
            $calendar .= '<td class="calendar-day-to">';
        else        
            $calendar .= '<td class="calendar-day-booked">';
    }
}
else
    $calendar.= '<td class="calendar-day">';

1 个答案:

答案 0 :(得分:9)

对于什么太多没有明确的答案,因为有太多的参数,例如:有多少用户,你的数据库是什么类型的硬件等等。

如果您的问题是“对最终用户来说这会太慢吗?”然后你应该分析代码,看看它是如何运作的。

要回答关于是否每次分配$ rows的问题,是否有查询,答案是肯定的 - 每次获得$ rows时都会运行SQL查询。

主观上,我认为效率低下。如果这是我的代码,我会重写它以便SQL获得整个月(例如相应地设置日期范围),然后在PHP中处理返回的数据,循环数据并一次处理月份。我可能会循环返回一次返回的数据,构建一个围绕日期键入的数组,然后将它们全部内容组合在一起。