1 백만 개의 레코드가있는 테이블이 있으며 2 쿼리를 디자인했습니다.SQL 쿼리 성능 차이
테이블 인덱스 :
id = primary
bedroom = index
elevator = index
pricemeter = index
dateadd = index
내가이 쿼리 이유를 알고 싶어 :
SELECT
*
FROM (
SELECT
*
FROM `p_apartmentbuy`
WHERE
`sqm` > 100
AND `bedroom` > 1
AND `elevator` = 1
AND `pricemeter` < 5999999
ORDER BY `id` DESC
LIMIT 0, 30
) AS `alias`
ORDER BY `id` DESC, `dateadd` DESC
보다 훨씬 빠른이 하나를 먼저 쿼리가 0.0027 초를했다
SELECT
*
FROM `p_apartmentbuy`
WHERE
`sqm` > 100
AND `bedroom` > 1
AND `elevator` = 1
AND `pricemeter` < 5999999
ORDER BY `id` DESC, `dateadd` DESC
LIMIT 0, 30
및 두 번째 쿼리는 5.6848 초가 걸렸습니다. 결과는 모두 다른 것과 같고 where 절의 변수는 예제입니다.
빠른 쿼리에 대 한 설명 :
느린 쿼리에 대 한 설명 :
실행 계획에 어떤 내용이 있습니까? – Lamak
'SELECT' 전에'EXPLAIN'을 사용하면 실행 계획을 볼 수 있고 쿼리를 실행하기 전에 SQL 캐시가 비어 있는지 확인할 수 있습니다. –
@ N.B. 나는 결과를 설명해 주었다. – Hamidreza