gpt4 book ai didi

mysql - 最新变化 : ORDER BY timestamp DESC LIMIT 1 - Efficient?

转载 作者:行者123 更新时间:2023-11-29 05:41:30 27 4
gpt4 key购买 nike

我有一个简单的保存日志:

XiD (INT) what was saved  
UiD (INT) who done it
TiD (TIMESTAMP) CURRENT_TIMESTAMP

所有三个字段都在主键中 - 使其唯一。

我只想通知用户最新的日志行(直到她要求更多):

SELECT UiD,TiD FROM log WHERE XiD=? ORDER BY TiD DESC LIMIT 1  

但是如果有 10 亿条记录具有相同的 XiD 会怎样?
以上是否有效或 MySql 服务器是否会检查所有记录(对于 ORDER BY)
- 如果是这样:如何使用最少的服务器卡路里提取这样的日志的单个最新记录?

PS:我还没有实现任何东西,所以任何替代方案都是可能的:)

编辑:
也许直接在 XiD 记录的字段中(除了在日志中)存储(覆盖)谁和何时(UiD+TiD)会更有效,所以我可以直接获取它们,只在用户时查看日志明确要求更多日志行..

最佳答案

  1. 不,引擎不会检查所有记录的 ORDER BY。它将检查 WHERE 子句返回的所有记录。 抱歉,错过了这个但是如果有十亿条记录具有相同的 XiD 会怎样?。是的,引擎将检查 ORDER BY 子句的所有记录。 Here is the order of operations, as explained by Ben Nadel :

    1. FROM clause
    2. WHERE clause
    3. GROUP BY clause
    4. HAVING clause
    5. SELECT clause
    6. ORDER BY clause
  2. 恕我直言,我认为没有更好的方法来提取单个最新记录。

关于mysql - 最新变化 : ORDER BY timestamp DESC LIMIT 1 - Efficient?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6439469/

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