mysql - 一种测试表行是否存在的有效方法

标签 mysql sql sql-server performance oracle

我正在尝试找到确定表行是否存在的最有效方法。

我想到了 3 个选项:

  1. SELECT EXISTS(SELECT 1 FROM table1 WHERE some_condition);

  2. SELECT 1 FROM table1 WHERE some_condition LIMIT 0,1;

  3. SELECT COUNT(1) FROM table1 WHERE some_condition;

对于MySQL,似乎第一种方法更有效: Best way to test if a row exists in a MySQL table

对于任何数据库来说,这通常都是正确的吗?

更新:

我添加了第三个选项。

更新 2:

假设数据库产品是mysql、oracle和sql-server。

最佳答案

我愿意

SELECT COUNT(1) FROM table 1 WHERE some_condition.

但我不认为它会产生显着差异,除非您经常调用它(在这种情况下,我可能会使用不同的策略)。

关于mysql - 一种测试表行是否存在的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9026184/

相关文章:

mysql - 为 MYSQL DB 构建 AngularJS UI。尝试添加显示另一个表中总计的列

sql-server - 单个查询中的多个分组信息

mysql - 在 MySQL 中创建累积和列

php - 根据另一个表的选择结果选择一个表

mysql - 优化了 3 个表的连接查询

SQL 序列在 case 语句中使用时跳过值

sql-server - 使用函数和 View 的 SQL Server 查询速度较慢

php - 在php中将三个mysql查询组合成一个json数组

php - 发送 user_id 并检索用户记录

mysql - 如何在查询 Cakephp 中包含另一个表