나는 ORDER BY라는 datetime 열이있는 테이블을 가지고있다. 내가 무엇을 하든지, 나는 EXPLAIN에서 "filesort를 사용하여 어디에서 사용하고 있는가?"이 쿼리는 Filesort를 사용하지 않을 수 있습니까?
datetime 열에서 ORDER BY를 사용하여 filesort를 사용하지 않을 방법이 있습니까?
쿼리가 매우 간단하고 그래서 다음과 같습니다
SELECT * FROM table1 WHERE creator_id = 1 AND user_id != 1 ORDER BY created DESC LIMIT 5
지수는 creator_id에 있고 USER_ID 나는 그것이 인덱스에 만들 것이다, 따라서 기본적으로 항상 고유 한 이후 생성에 인덱스를 넣어 할 이유가 없다 모든 항목 즉, 테이블만큼 큰.
편집 : 필자는 인덱스를 만들 때 동일한 결과를 얻으려고 시도했음을 언급해야합니다.
이 테이블은 얼마나 큽니까? 얼마나 많은 행, 일반적인 행 너비, 총 테이블 크기 (MB)입니까? – mvp
샘플 코드 – Afsar
샘플 코드가 추가되었습니다. 테이블의 행 수가 200,000 ~ 1,000,000 개입니다. 이 순간 테이블은 413,000 개의 행을 가지며 53MB 크기입니다. 그것은 8 개의 열을 가지고 있습니다. 특이한 즉 varchars, datetimes 및 bigints가 없습니다. – Adergaard