MySQL 선택 쿼리에서 사용할 인덱스를 힌트로 제공하는 방법은 무엇입니까?
MySQL 쿼리(MySQL 5.0.88 실행)가 있는데, 속도를 높이려고 합니다.기본 테이블에는 여러 개의 인덱스가 있으며 문제의 쿼리에 대해 잘못된 인덱스가 사용됩니다(i_active
16,000개 행, 대i_iln
7열).
MySQL에 대한 경험이 많지 않지만 다음이 있다는 것을 읽습니다.use index
힌트: mySQL이 특정 인덱스를 사용하도록 강제할 수 있습니다.저는 이렇게 시도하고 있습니다.
SELECT art.firma USE INDEX (i_iln)
...
그러나 MySQL 오류가 발생합니다.
질문:
내가 무엇을 잘못하고 있는지 누가 말해줄 수 있습니까? (변경할 수 없는 5.0.88 실행 제외)
당신은 그것을 놓쳤습니다.
FROM table
올바른 SQL은 다음과 같아야 합니다.
SELECT art.firma FROM your_table USE INDEX (i_iln) WHERE ....
select * from table use index (idx);
http://dev.mysql.com/doc/refman/5.0/en/index-hints.html
때때로 use index(index_name) optimizer를 사용하면 테이블 스캔에 사용할 수 있습니다. 힌트 힘 인덱스를 사용하면 optimizer는 인덱스를 사용하도록 강제되며 제공된 인덱스로 행을 가져올 방법이 남아 있지 않은 경우에만 테이블 스캔에 사용됩니다.
SELECT art.firma FROM art FORCE INDEX (i_iln);
힌트에 대한 자세한 내용은 INDEX 및 Force INDEX를 사용하여 이 링크를 확인하십시오.
Column1, Column2, Column...을 선택합니다.표_이름에서 인덱스(index_name)를 사용합니다. 여기서 열="조건";
만약 당신이 정확한 색인을 가지고 있다면 당신은 색인을 사용할 필요가 없습니다.쿼리 자동으로 올바른 인덱스를 선택합니다.인덱스를 사용한 후 쿼리가 느려지면 인덱스를 다시 확인하십시오. 미리 감사합니다. 여기에 코드를 입력하십시오.
언급URL : https://stackoverflow.com/questions/11731822/how-to-hint-the-index-to-use-in-a-mysql-select-query
'source' 카테고리의 다른 글
javax.validation.constraint의 주석이 작동하지 않습니다. (0) | 2023.08.17 |
---|---|
Oracle 대 Maria의 분석 기능DB (0) | 2023.08.12 |
Angular2 - '라우터 출구'가 알려진 요소가 아닙니다. (0) | 2023.08.12 |
텍스트 표시: 줄임표가 작동하지 않습니다. (0) | 2023.08.12 |
자바스크립트에서 URL로 이동하기 위해 온클릭 기능을 추가하시겠습니까? (0) | 2023.08.12 |