gpt4 book ai didi

MySQL - 通过时间戳进行查询是否更有效?

转载 作者:行者123 更新时间:2023-11-29 06:46:24 25 4
gpt4 key购买 nike

我有一个包含主键、索引字段和未索引时间戳字段的表。

  • 按时间戳查询是否也更高效?可以说 - 12 小时期间?
  • 通过主键查询就足够了,还是使用索引字段更好?可以说,通过索引字段进行查询不是必须的。

例子:

p_key  |   project   | name  | timestamp
-----------------------------------------
1 | 1 | a | 18:00
2 | 1 | b | 19:00

我想获取记录1。

我应该问:

SELECT *
FROM tbl
WHERE p_key = 1 AND project = 1 AND timestamp BETWEEN 16:30 AND 18:30)

SELECT *
FROM tbl
WHERE p_key = 1

假设我有很多记录。

最佳答案

在您的示例中,哪个查询在执行时间方面更高效并不重要。需要注意的重要一点是主键是唯一的。

您的查询:

SELECT * FROM tbl WHERE p_key = 1

将返回与其他查询相同的行:

SELECT * FROM tbl WHERE p_key = 1 AND project = 1 AND timestamp BETWEEN 16:30 AND 18:30)

因为两者都对 p_key = 1 进行过滤。这里最糟糕的情况是该条目实际上并不属于第二个查询中的时间范围,并且您根本没有得到任何结果。

我假设您在此处的主键上有一个索引。这意味着绝对不需要运行第二个查询与第一个查询,除非它可能不在请求的时间跨度内。

因此,您的数据库效率将在于您无需为第二个查询创建和维护新索引。如果您有“许多”行,如您所说,这种效率可能变得非常重要。

关于MySQL - 通过时间戳进行查询是否更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49240398/

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