极限vs存在vs count(*)vs count(id)在MySQL中

埃丘森

我只想知道哪个是最快的。

我正在尝试做的只是检查表上是否存在数据。我大多数时候都在使用“ LIMIT”,但是在您看来或有基础的情况下,哪一种是检查数据是否存在最快的方法。

例:

限制1:

SELECT ID 
       FROM TABLE 
       WHERE ID=1 LIMIT 1;

存在:

SELECT EXISTS(
              SELECT * 
              FROM TABLE 
              WHERE ID=1);

计数(*):

SELECT (*) 
FROM TABLE;

计数(ID):

SELECT (ID) 
FROM TABLE;" 

另外:我正在使用InnoDB。

用户名

限制始终是最快的,因为它会迭代表的一行。

存在与限制没有什么区别,因为您只添加了另一个选择语句,我们可以说它的效率与第一个相同。

Count将迭代所有表并计数结果。当您使用count()时,默认情况下,mysql对表的主键进行计数。我已经对大表中的count(id),count(),count(field)和count(1)进行了一些测试,没有太大的区别。我认为,除非您计数的字段不是索引,否则“ count”将始终尝试对索引进行计数,但是许多人说我们应该使用count(id)而不是count(*)。

在一张小桌子上,这四种方式都可以正常工作。但是,如果您加入一些大桌子,计数将需要非常长的时间。

因此,总共使用的时间为count(*)> count(id)>>存在>限制

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PDO :: rowCount VS COUNT(*)

来自分类Dev

PDO :: rowCount VS COUNT(*)

来自分类Dev

MySQL SELECT 1 vs SELECT`field_id` and COUNT 1 vs COUNT(*)或COUNT(`field_id`)性能明智

来自分类Dev

UPDATE vs COUNT vs SELECT性能

来自分类Dev

MySQL:哪里存在 VS where id in [性能]

来自分类Dev

存在Vs IN Vs =

来自分类Dev

Swift array.capacity vs array.count

来自分类Dev

Springboot + JPA:捕获DataIntegrityViolationException vs检查COUNT(字段)

来自分类Dev

LINQ使用Single与Try..Catch vs First与Count!= 1

来自分类Dev

春季批次corePoolSize VS节流阀极限

来自分类Dev

Groovy中的“ vs”,“ vs”,“ vs”和“ vs”。何时使用什么?

来自分类Dev

Rails 5-第一个vs极限1 vs找到

来自分类Dev

isset()vs检查PHP中是否存在变量

来自分类Dev

为什么 CSS 中的输出存在差异:li a VS li,a

来自分类Dev

mysql中的day()vs dayofmonth()

来自分类Dev

Mysql vs mysqld vs mysql-server

来自分类Dev

PySpark DataFrame-强制渴望数据帧缓存-take(1)vs count()

来自分类Dev

MySQL-CASE vs IF语句vs IF函数

来自分类Dev

对于表中不存在的ID,显示COUNT = 0

来自分类Dev

MySQL枚举VS INT

来自分类Dev

加密解密 VS MySQL

来自分类Dev

cd vs!cd vs%cd在IPython中

来自分类Dev

Android中的Uri vs File vs StringPath

来自分类Dev

is vs Equals() vs == 在模式匹配中

来自分类Dev

var vs:=在Go中

来自分类Dev

Java中的+ = vs = +

来自分类Dev

*在Proguard中是VS还是**?

来自分类Dev

Common Lisp中的'()vs()

来自分类Dev

后代:: vs //在XPath中