如何在不使用php的情况下从mysql查询返回值?

时间:2014-11-30 16:47:33

标签: mysql

我有2个包含500.000项的mysql表

首先是商品价格,商品ID和票号 第二个是ticket_number,销售日期和票证的total_price

现在我使用此查询

SELECT items.pri,ticket.date,items.crd,items.plu
FROM items ,ticket
WHERE 
(items.crd = 25 OR items.crd = 30) AND items.SeqNbr = ticket.SeqNbr

然后在php:

$val_1 = array();
$price1 = 0;
while($row = mysql_fetch_array($query))
{
    if($row['crd'] == 25)
    {
        $prix = $row['pri'];
        if($prix != $price1)
        {
            $val_1[] = array( (int)$row['date']*1000,(float)$row['pri']);
            $price1 = $prix;
        }
    }
}

返回:

[[1388552879000,1.519],[1389136505000,1.498],[1392420222000,1.514],[1394667334000,1.499],[1395373887000,1.478],[1395963467000,1.499],[1396649284000,1.52],[1397513210000,1.542],[1398384245000,1.556],[1399347974000,1.536],[1400910286000,1.553],[1403216692000,1.58],[1405029076000,1.563]]

目标是获得价格变化和日期的数组,以建立价格波动图表。

但是有超过500,000条记录,这是极其缓慢的(15秒)

有没有可能构建返回相同数组的mysql查询?

由于

1 个答案:

答案 0 :(得分:0)

首先,您需要检查瓶颈,查询或循环的位置。 如果它在查询上,请检查您是否具有正确的索引。如果没有,请尝试为字段items.crd,items.SeqNbr和ticket.SeqNbr添加索引。