source

MySQL 선택 쿼리에서 사용할 인덱스를 힌트로 제공하는 방법은 무엇입니까?

factcode 2023. 8. 12. 10:46
반응형

MySQL 선택 쿼리에서 사용할 인덱스를 힌트로 제공하는 방법은 무엇입니까?

MySQL 쿼리(MySQL 5.0.88 실행)가 있는데, 속도를 높이려고 합니다.기본 테이블에는 여러 개의 인덱스가 있으며 문제의 쿼리에 대해 잘못된 인덱스가 사용됩니다(i_active16,000개 행, 대i_iln7열).

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

반응형