我是一名有用的助手,可以为您翻译文本。
我有两个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
0.0013秒
,而第二个查询花费了0.0200秒
! - getawayEXPLAIN
:http://www.learn-mysql-tutorial.com/OptimizeQueries.cfm - Piskvor left the building