【发布时间】:2011-04-15 15:54:25
【问题描述】:
我有 2 个 mysql 查询,它们检索相同的数据?,你认为哪个更好用,为什么?考虑到标准和更好的代码等。对不起,如果这是一个愚蠢的问题,但我是一只好奇的猫!所以这里是:
问题 1:
SELECT *
FROM
((
SELECT u.username, u.picture, m.id, m.user_note, m.reply_id, m.reply_name, m.dt
FROM relationships r
JOIN notes m ON m.user_id = r.leader
JOIN user u ON r.leader = u.user_id
WHERE r.listener ='2'
)
UNION ALL
(
SELECT u.username, u.picture, m.id, m.user_note, m.reply_id, m.reply_name, m.dt
FROM notes m
JOIN user u ON m.user_id = u.user_id
WHERE u.user_id ='2'
)) d
WHERE d.dt < '2010-09-20_131830'
ORDER BY d.dt DESC
问题 2:
SELECT u.username, u.picture, m.id, m.user_note, m.reply_id, m.reply_name, m.dt
FROM notes m
INNER JOIN user u
ON m.user_id = u.user_id
WHERE (m.user_id = '2'
OR m.user_id IN (
SELECT r.leader
FROM relationships r
WHERE r.listener ='2'))
AND dt < '2010-09-20_131830'
ORDER BY dt DESC
【问题讨论】:
-
为什么不尝试对每个查询进行 EXPLAIN 来确定 MySQL 认为哪个更有效,或者您觉得哪个更容易阅读?
-
我用了解释,但我不明白他们在说什么!!加上第一个查询花费了
0.0013 sec并且第二个查询花费了0.0200秒! -
参见例如这是对
EXPLAIN的快速介绍:learn-mysql-tutorial.com/OptimizeQueries.cfm
标签: mysql performance select