2012-03-20 2 views
1

지금 iphone-app에 대해 다음 sql 쿼리를 구현 중이며 HTTP GET을 사용하고 있습니다. SQL 쿼리는 조인을 포함하지 않으므로 충분히 효율적입니까? 이 충분히 효율적인 경우중첩 된 SQL 쿼리를 수행하는 더 나은 방법은 무엇입니까?

SELECT 
    menu_name 
FROM Menus 
WHERE 
    menu_id IN (
    SELECT 
     menus_id 
    FROM Restaurants_Menus 
    WHERE Restaurants_id = '$restaurantID' 
) 

답변

2

당신 만이 응답 할 수 있습니다. 그것이 당신의 필요를 충족 시킨다면, 그것은 괜찮습니다. 당신은 인덱스가 사용되는 위치를 확인하고 쿼리 실행 시간을 판단하는 그들에게 EXPLAIN와 모두를 실행할 수 있습니다

SELECT 
    Menus.menu_name 
FROM 
    Menus 
JOIN Restaurants_Menus ON Menus.menu_id = Restaurants_Menus.menus_id 
WHERE Restaurants_Menus.Restaurants_id = '$restaurantID' 

: 당신이 JOIN를 사용하는 경우, 더 빨리 할 수있다. Restaurants_Menus이 큰 테이블이 아니고 Restaurants_id이 기본 키인 경우 두 쿼리는 실행 시간이 크게 다를 가능성이 없습니다.

관련 문제