如何减少这个Query(SQL)?

时间:2013-09-05 12:24:44

标签: mysql sql performance reduce

$sql = "SELECT min(id) FROM matchTrip where userTripId = :tripId AND 
matchStrength = (SELECT MIN(matchStrength) FROM matchTrip where userTripId = :tripId) ";

是否可以减少此查询以便提高性能并减少执行此查询的时间?

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

您正在寻找id的最小值matchStrength的最小值。因此,您可以这样做:

SELECT 
  id 
FROM 
  matchTrip 
WHERE 
  userTripId = :tripId 
ORDER BY 
  matchStrength, 
  id 
LIMIT 1

在任何情况下,您都需要通过matchStrength获得索引(我认为您已经将其用于id字段)。至于性能 - 你必须采取措施,没有其他方法可以确保在性能方面有一件事比另一件更好。

答案 1 :(得分:0)

$sql = "SELECT id FROM matchTrip where userTripId = :tripId ORDER BY matchStrength, id LIMIT 1";