当前位置:  开发笔记 > 后端 > 正文

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

如何解决《检查表中是否存在行的最有效方法是什么?》经验,为你挑选了1个好方法。

假设我想检查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!



1> cletus..:

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

SELECT COUNT(1) FROM mytable WHERE id = 5

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有