如何检查现有条目(2个方法)[重复]

Posted

技术标签:

【中文标题】如何检查现有条目(2个方法)[重复]【英文标题】:How to check for an existing entry (2 approches) [duplicate] 【发布时间】:2013-03-13 13:12:01 【问题描述】:

我有两种不同的方法来检查现有条目。

方法 1

SQL:SELECT COUNT(*) FROM ...

php

$result = fetch_row();
if($result[0] > 0) // entry found

方法 2

SQL:SELECT 1 FROM ... LIMIT 1

PHP:

$result = num_rows();
if($result > 0) // entry found

就性能而言,正确的做法是什么?

【问题讨论】:

方法 2 在性能方面是正确的方法。 COUNT(*) 消耗太多内存。 【参考方案1】:

两者都是正确的和好的。但是我会建议第二个,因为您限制为 1 条记录,并且当您获得记录时它会停止,而首先您正在计算所有记录。

当您需要找出有多少条记录时,第一个“count *”很重要。

【讨论】:

【参考方案2】:

当有很多行匹配您的查询时,后者效率更高,因为在第一种情况下,mysql 必须找到所有行才能返回正确的计数值,而在第二种情况下,它会在找到第一个后停止搜索。

【讨论】:

以上是关于如何检查现有条目(2个方法)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何删除重复条目?

如何创建一个不允许重复实例的类(在可能的情况下返回现有实例)?

检查数组中的重复条目,但仅返回重复的值 [重复]

如何将数据框中的人口单元格与现有数据框合并和重复?

Laravel,Mysql重复条目

如何使用带有代码优先实体框架的 UnitOfWork 模式防止重复条目?