mysql - 如何在不使用 php 的情况下仅返回 mysql 查询的值更改?

标签 mysql

我有 2 个 mysql 表,包含 500.000 个项目

首先包含商品价格、商品 ID 和票号 第二个包含门票编号、销售日期和门票总价

现在我使用这个查询

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 查询?

谢谢

最佳答案

首先,您需要检查瓶颈在哪里,是在查询上还是在循环上。 如果在查询中,请检查您是否有正确的索引。如果没有,请尝试为 items.crd、items.SeqNbr 和 Ticket.SeqNbr 字段添加索引。

关于mysql - 如何在不使用 php 的情况下仅返回 mysql 查询的值更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27215616/

相关文章:

mysql - hive 中的等级/组

mysql - 是否可以在同一张表上进行多个连接?

mysql - node.js 使用两个表获取 mysql 数据

php - 我应该如何命名关系数据库中的字段?

php - Laravel:加载存储在 'storage' 文件夹中的图像

mysql - 将 csv 导入 phpmyadmin 并跳过第一列

php - 从其他类访问登录的 User 对象的最佳实践

mysql - 如何返回等于字符串的所有子字符串的行

mysql - 获取当前日期(月)起两个不同年份的月份和记录列表

javascript - Node.js 和 MySQL 函数使用