Ech*_*sen 9 php mysql sql database database-design
我只是想知道哪一个是最快的.
我要做的是只检查表中是否存在数据.我一直在使用"限制",但在您看来,或者如果您有基础,哪一个检查数据是否存在最快.
例:
限制1:
SELECT ID
FROM TABLE
WHERE ID=1 LIMIT 1;
Run Code Online (Sandbox Code Playgroud)
存在:
SELECT EXISTS(
SELECT *
FROM TABLE
WHERE ID=1);
Run Code Online (Sandbox Code Playgroud)
计数(*):
SELECT (*)
FROM TABLE;
Run Code Online (Sandbox Code Playgroud)
计数(ID):
SELECT (ID)
FROM TABLE;"
Run Code Online (Sandbox Code Playgroud)
另外:我正在使用InnoDB.
小智 14
限制始终是最快的,因为它迭代表的一行.
存在与Limit几乎没有区别,因为您只需添加另一个select语句,我们可以说它具有与第一个相同的效率.
Count将迭代所有表并计算结果.当您使用count()时,默认情况下,mysql会计算表的主键.我在大表中完成了count(id),count(),count(field)和count(1)的一些测试,没有太大的区别.在我看来,'count'总是会尝试计算索引,除非你计算的字段不是索引,但很多人说我们应该使用count(id)而不是count(*).
在一张小桌子上,四种方式都可以正常工作.但是,如果你加入一些大桌子,数数将花费很长时间.
总而言之,使用的时间是count(*)> count(id)>> exists> limit