gpt4 book ai didi

sql - 检查表中是否存在行的最有效方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 06:55:37 25 4
gpt4 key购买 nike

假设我想检查 MySQL 表中的记录是否存在。我会运行一个查询,检查返回的行数。如果 0 行执行此操作,否则执行此操作。

SELECT * FROM table WHERE id=5
SELECT id FROM table WHERE id=5

这两个查询之间有什么区别吗?是花在返回每一列上,还是花在过滤掉我们不关心的列上?

SELECT COUNT(*) FROM table WHERE id=5

是一个全新的问题。服务器会抓取所有值然后计算这些值(比平时更难),还是它不会费心抓取任何东西而只是在每次找到匹配项时递增一个变量(比平时更容易)?

我认为我对 MySQL 的工作原理做出了很多错误的假设,但这就是问题的关键所在!我哪里错了?教育我,Stack Overflow!

最佳答案

优化器非常聪明(通常)。他们通常只抓取他们需要的东西,所以我会选择:

SELECT COUNT(1) FROM mytable WHERE id = 5

关于sql - 检查表中是否存在行的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/486270/

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