2015-11-03 101 views
-1

假设我在表格中有一个字段需要检查,并且字段中存储了值“on”。现在,哪些是值得推荐的?MySQL - 哪个更好:SELECT还是SELECT COUNT?

SELECT COUNT(*) AS c FROM table WHERE field='on' 
if (c > 0) { //execute script } 

SELECT field FROM table 
if (field == 'on') { //execute script } 
+0

为什么不:SELECT COUNT(*)FROM table WHERE field ='on'having COUNT(*)> 0 {//执行脚本} – John

+0

这两个查询产生完全不同的输出,您想如何比较他们? – Shadow

+0

我想比较哪个更快,并且会在恶劣的环境中做的更好。 – user3052587

回答

0
SELECT COUNT(*) AS c FROM table WHERE field='on' 
if (c > 0) { //execute script } 

第一个是速度更快,因为查询自己对记录进行计数并仅在where field ='on'条件下获取欲望记录。因此,执行这样的查询需要更少的时间,同时占用更少的内存。 其中一个最有用的好处是加速。

SELECT field FROM table 
if (field == 'on') { //execute script } 

第二动作使用大型数据库时,因为其获取从数据库中的所有记录,然后我们正在检查“开”条件申请==服用时间。

所以第一个比较好实施。

+0

谢谢你的帮助。 – user3052587

+0

最受欢迎。也总是为未来做好准备。 – RJParikh

0

第一个是好还是快速的方式

SELECT COUNT(*) AS c FROM table WHERE field='on' 

因为if (c > 0)超过快if (field == 'on')

+0

不是'count(*)'比'count(field)'慢吗? – px5x2