복잡한 쿼리에서 ORDER BY가 포함 된 MySQL 쿼리의 속도를 지속적으로 향상 시키려고했습니다. 몇 가지 옵션을 다 써 버렸고 꽤 가까워졌습니다. 문제의 테이블에 의사 역 색인을 구현하는 최상의 솔루션을 찾았습니다.MySQL에서 반전 된 테이블 인덱스가 발견되지 않았습니다.
나는 기본적으로 (공동 인덱스를 사용하여 날짜를 게시 대신 ID를 사용하여 변화를 포함, 등)이 게시물에 대한 조언 에뮬레이션 : http://www.igvita.com/2007/08/20/pseudo-reverse-indexes-in-mysql/
를 성공적으로 그것을 채워, 여분의 열을 추가 인덱스를 추가 쿼리는
SELECT * FROM products USE INDEX (index_reverse_created);
보이지 않습니다. 인덱스 이름 대신 임의의 단어 나 일반 열을 삽입하면 오류가 발생하므로 인덱스가 성공적으로 감지됩니다. * ... SELECT EXPLAIN 사용
추가 검사는, 그러나,이 보여
http://i44.tinypic.com/2aes304.png
특이한 부분 possible_keys
및 key
모두 (NULL)이다.
http://i41.tinypic.com/fvvdl1.png
을 그리고 그 지표의 건강한 세트처럼 보인다 : 제품의
SHOW 색인이를 얻을 수 있습니다.
전체적으로 나는 혼란 스럽습니다. 색인처럼 보이지만 실제로 사용하려고하면 뭔가 잘못됩니다.
이 글을 읽은 후 나는 대략 facedesk 이었지만, where와 group by 절을 사용해도 역 색인은 작동하지 않는 것 같습니다. 내가 사용 쿼리 : SELECT ID, 제품의 USER_ID 사용 INDEX (index_reverse_created) WHERE ID
역 색인의 구조는 무엇입니까? –
구조가 정확히 무엇입니까? 다음 코드로 작성됩니다. ALTER TABLE products ADD INDEX index_reverse_created (reverse_created); 'reverse_created'는'created'의 timestampdiffs()로 채워진 컬럼입니다. –