在查询效率方面,SELECT 1 FROM users WHERE username='John'的速度比SELECT COUNT(*) FROM users WHERE username='John' LIMIT 1更快,因为它只需要找到第一条匹配记录就可以返回结果。
而使用SELECT COUNT() FROM users WHERE username='John' LIMIT 1时,虽然也是找到第一条匹配记录返回结果,但是由于COUNT()需要计算符合条件的记录数,可能会比SELECT 1稍微慢一些。
另外,如果对username列创建了索引,则SELECT 1 FROM users WHERE username='John'的速度将进一步加快,因为MySQL可以利用索引直接查找符合条件的记录。
综上所述,当我们只需要判断是否存在某条记录时,建议使用SELECT 1 FROM表名 WHERE查询条件的方式进行查询。而SELECT COUNT(*) FROM表名 WHERE查询条件 LIMIT 1虽然也可以实现相同的功能,但并不是最优选择