mysql - 基于 JOIN ON 参数或 WHERE 参数限制 SQL 结果

标签 mysql sql performance

我正在尝试确定在 JOIN ON 子句或 WHERE 子句本身的 MySQL 查询中使用选择参数是否有任何已知的好处。

我确定并知道返回的结果是相同的,在本地测试时“查询时间”似乎几乎可以忽略不计,但想看看是否有任何专家意见。

这两者在后端有区别吗?如果有,哪个更好?

v1

SELECT
  *
FROM users a
JOIN user_photos b ON (b.userid = a.userid)
WHERE
  a.userid = 12345
  AND b.photo_type = 1

或v2

SELECT
  *
FROM users a
JOIN user_photos b ON (b.userid = a.userid AND b.photo_type = 1)
WHERE
  a.userid = 12345

最佳答案

只要没有 Outer Join,结果集就没有区别。 所有并非完全愚蠢的优化器都会将两个版本完全相同。

关于mysql - 基于 JOIN ON 参数或 WHERE 参数限制 SQL 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18878786/

相关文章:

mysql - 优化 MySQL 子查询

php - 使用自定义日期检索最近 3 年的数据

sql - 如何在 SQL Server 2008 R2 中根据参数名称检索 xml 数据类型中的属性值?

sql - 不存在的性能 - t-sql 查询

java - newFixedThreadPool 与 newSingleThreadExecutor 的性能问题

mysql - 如何通过传递另一个列值来检索列值

php - Symfony 2.3.7 查询结果中的表单值

sql - SQL 语句中不允许的本地集合类型

linux - 检查目录树中文件时间戳的快速方法

java - 哪种代码性能更好?