를 검색합니다. 그것은 BY ORDER를 보인다 LIMIT는MySQL의 차이가 나는 쿼리가
비효율적 ORDER BY와 LIMIT없이하고 있습니다 : 적은 수에 스캔 중첩 된 쿼리를 생성
mysql> SELECT count(*)
FROM OTHERS_TINY_URL_TBL
WHERE LINK_TYPE = 'BITLY'
AND URL_SHORTNER_ID = '5434e3b9e4b03aa06f25da11'
AND MODIFIED_TM >= '2016-03-13 21:09:43'
AND MODIFIED_TM <= '2017-03-13 21:09:43'
AND POST_ID < 0\G;
*************************** 1. row ***************************
count(*): 85
1 row in set (0.02 sec)
ERROR:
No query specified
:
mysql> explain SELECT *
FROM OTHERS_TINY_URL_TBL
WHERE LINK_TYPE = 'BITLY'
AND URL_SHORTNER_ID = '5434e3b9e4b03aa06f25da11'
AND MODIFIED_TM >= '2016-03-13 21:09:43'
AND MODIFIED_TM <= '2017-03-13 21:09:43'
AND POST_ID < 0\G;
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: OTHERS_TINY_URL_TBL
type: range
possible_keys: XIE1_OTHERS_TINY_URL_TBL,XIE2_OTHERS_TINY_URL_TBL,XIE5_OTHERS_TINY_URL_TBL
key: XIE2_OTHERS_TINY_URL_TBL
key_len: 9
ref: NULL
rows: 4950
Extra: Using index condition; Using where
1 row in set (0.00 sec)
ERROR:
No query specified
만 85 개 필터링 된 세트의 행 행의 :
mysql> explain SELECT *
FROM
(
SELECT *
from OTHERS_TINY_URL_TBL
where URL_SHORTNER_ID = '5434e3b9e4b03aa06f25da11'
AND MODIFIED_TM >= '2016-03-13 21:09:43'
AND MODIFIED_TM <= '2017-03-13 21:09:43'
AND POST_ID < 0
) inner_t
where true
ORDER BY MODIFIED_TM DESC
LIMIT 1000\G;
*************************** 1. row ***************************
id: 1
select_type: PRIMARY
table: <derived2>
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 4950
Extra: Using filesort
*************************** 2. row ***************************
id: 2
select_type: DERIVED
table: OTHERS_TINY_URL_TBL
type: range
possible_keys: XIE2_OTHERS_TINY_URL_TBL,XIE5_OTHERS_TINY_URL_TBL
key: XIE2_OTHERS_TINY_URL_TBL
key_len: 9
ref: NULL
rows: 4950
Extra: Using index condition; Using where
2 rows in set (0.00 sec)
ERROR:
No query specified
왜 첫 번째 쿼리는 비효율적이다?
'SHOW CREATE TABLE'을 제공해주세요 - 선택한 색인이 무엇인지 어떻게 알 수 있습니까? –