gpt4 book ai didi

mysql - MySQL "AS"而非 "AS"的性能

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

以下两个查询之间是否存在性能差异?

SELECT * FROM users AS u LEFT JOIN parents AS p ON u.id=p.user_id

SELECT * FROM users u LEFT JOIN parents p ON u.id=p.user_id

(第二个没有AS)

最佳答案

与所有事物一样:衡量就是了解。如果你真的想知道运行分析器和测量。否则从我们这里拿走它:到目前为止,它甚至不值得你考虑它。

如果存在任何差异(相当大的差异)应该 a) 被认为是 MySQL 中的一个缺陷,b) 在查询解析 部分期间出现问题,不是查询执行部分,因此无论如何都可以忽略不计,因为执行而不是解析通常占总“查询时间”的 99.99999%(如果不是更多的话)。

如果有任何可测量的差异,它应该非常、非常、非常小,因此 a) 不值得为差异烦恼,因为用户通常不注意以纳秒为增量的加速,b) 仅当您在紧密循环中运行许多、数千个查询时才会注意到。

如果 MySQL 的贡献者没有搞砸,那么根本就没有区别,因为 AS 关键字只是可选的并且存在是为了易读性。 确定的唯一方法是分析。这不是第一次在软件中出现一些奇怪的错误或行为。但是可以(非常)安全地假设 AS 关键字根本没有任何区别,因为很久以前,数百万 MySQL 用户中的任何一个都会“发现”它你(或者他们都没有打扰过,你永远不知道 Puh )。恕我直言,花任何时间分析这个“问题”都是浪费时间。

阅读rules of Optimization club .

只有当确实存在性能问题时,您才会开始寻找可以优化的地方。而且你只优化“低悬的果实”或占相当大负载的东西(无论是 I/O、CPU、网络,等等)。优化查询删除 AS 关键字以提高性能是一种微观优化,永远不会返回您的时间投资(除非出现错误/问题)。作为一个“思想实验”,虽然您的问题可以(并且应该)通过使用分析而不是猜测、其他人的意见等建立硬数据来回答。


确实遗漏了诸如查询缓存之类的东西,它们可能可能会受到使用/不使用AS关键字或AS<执行查询的影响 每次执行查询时在不同位置的关键字,这将(或更确切地说:可能)导致(不必要地)重新创建查询执行计划或无法重用查询缓存等,但现在我们真的在谈论这里的边缘情况和这句话,再说一遍:衡量就是知道

关于mysql - MySQL "AS"而非 "AS"的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15654864/

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