gpt4 book ai didi

MySQL 连接问题,查询挂起

转载 作者:行者123 更新时间:2023-11-29 08:39:21 25 4
gpt4 key购买 nike

我有一个表,其中包含带有时间戳的数字数据点,如下所示:

CREATE TABLE `value_table1` (
`datetime` datetime NOT NULL,
`value` decimal(14,8) DEFAULT NULL,
KEY `datetime` (`datetime`)
) ENGINE=InnoDB;

我的表每 5 秒保存一个数据点,因此表中的时间戳将是,例如:

"2013-01-01 10:23:35"
"2013-01-01 10:23:40"
"2013-01-01 10:23:45"
"2013-01-01 10:23:50"

我有几个这样的值表,有时需要查看两个值系列之间的比率。因此,我尝试加入,但似乎不起作用:

SELECT value_table1.datetime, value_table1.value / value_table2.rate 
FROM value_table1
JOIN value_table2
ON value_table1.datetime = value_table2.datetime
ORDER BY value_table1.datetime ASC;

对查询运行 EXPLAIN 显示:

+----+-------------+--------------+------+---------------+------+---------+------+-------+---------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------------+------+---------------+------+---------+------+-------+---------------------------------+
| 1 | SIMPLE | value_table1 | ALL | NULL | NULL | NULL | NULL | 83784 | Using temporary; Using filesort |
| 1 | SIMPLE | value_table2 | ALL | NULL | NULL | NULL | NULL | 83735 | |
+----+-------------+--------------+------+---------------+------+---------+------+-------+---------------------------------+

编辑问题解决了,不知道我的索引消失到哪里了。 EXPLAIN 显示了它,谢谢!

谢谢!

最佳答案

正如您的解释所示,查询未在连接上使用索引。如果没有索引,它必须扫描两个表中的每一行来处理连接。

首先,确保联接中使用的列都已建立索引。

如果是,则可能是列类型导致了问题。您可以创建时间的整数表示形式,然后使用它来连接两个表。

关于MySQL 连接问题,查询挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14285123/

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