>  기사  >  데이터 베이스  >  mysql 인덱스는 자동으로 사용되나요?

mysql 인덱스는 자동으로 사용되나요?

little bottle
little bottle원래의
2019-05-10 16:44:333181검색

MySQL 인덱스는 자동으로 사용할 수 있고, 사용자가 강제로 사용할 수도 있습니다. MYSQL은 인덱스를 생성한 후 두 가지 방법으로 인덱스를 사용합니다. 하나는 데이터베이스의 쿼리 최적화 프로그램이 자동으로 인덱스 사용 여부를 결정하는 것이고, 다른 하나는 사용자가 SQL 문을 작성할 때 인덱스를 강제로 사용할 수 있다는 것입니다.

mysql 인덱스는 자동으로 사용되나요?

MYSQL은 인덱스를 생성한 후 두 가지 방법으로 인덱스를 사용합니다. 첫째, 데이터베이스의 쿼리 최적화 프로그램이 인덱스 사용 여부를 자동으로 결정하고, 둘째, 사용자가 SQL 문을 작성할 때 인덱스를 강제로 사용할 수 있습니다.

(권장 튜토리얼: mysql 비디오 튜토리얼)

MYSQL은 인덱스를 생성한 후 두 가지 방법으로 인덱스를 사용합니다:

1 데이터베이스의 쿼리 최적화 프로그램은 인덱스 사용 여부를 자동으로 결정합니다. 사용자는 SQL 문 작성 시 강제로 인덱스를 사용할 수 있습니다

다음은 인덱스를 사용하는 두 가지 방법입니다

첫 번째는 인덱스를 자동으로 사용하는 것입니다.

쿼리 문을 받은 후 데이터베이스는 where 문 뒤에 있는 쿼리 조건을 확인하고 테이블에 어떤 인덱스가 있는지 확인한 다음 쿼리 조건과 인덱스를 기준으로 일치시킵니다.

쿼리 조건과 인덱스의 매칭에는 쿼리 필드와 인덱스 필드의 매칭, 쿼리 유형과 인덱스 유형의 매칭이 포함됩니다. 전자는 이해하기 쉽다. 즉, 쿼리 조건의 속성을 기반으로 인덱스를 구축해야 하고, 후자는 쿼리 조건이 인덱스를 사용할 수 있어야 한다는 것을 의미한다. 예를 들어 동등 판단 및 범위 쿼리는 B+ 트리를 사용할 수 있다. 인덱스, 해시 인덱스는 동일한 값에만 적용할 수 있습니다.


쿼리 조건에 맞는 인덱스를 찾은 후 인덱스 사용 여부를 결정하기 위해 비용 견적이 이루어집니다. 일반적으로 액세스되는 레코드 수를 기준으로 비용 견적이 이루어집니다. 인덱스가 전체 테이블 레코드의 15% 이상을 차지하는 경우, 인덱스를 사용하는 데 드는 비용이 더 크기 때문에 인덱스를 사용하지 않지만 전체 테이블 스캔을 사용하게 됩니다. 인덱스를 사용하면 대부분의 경우 효율성이 향상됩니다.

옵티마이저의 판단 후 최종적으로 인덱스 사용 여부를 결정하게 됩니다.

두 번째 방법은 인덱스를 강제로 사용하는 방법인데, 이는 주로 SQL 문을 통해 이루어집니다

select * from table force index(PRI) limit 2;(强制使用主键)
select * from table force index(ziduan1_index) limit 2;(强制使用索引"ziduan1_index")
select * from table force index(PRI,ziduan1_index) limit 2;(强制使用索引"PRI和ziduan1_index")

인덱스 사용을 금지할 수도 있습니다

select * from table ignore index(PRI) limit 2;(禁止使用主键)
select * from table ignore index(ziduan1_index) limit 2;(禁止使用索引"ziduan1_index")
select * from table ignore index(PRI,ziduan1_index) limit 2;(禁止使用索引"PRI,ziduan1_index")

위 내용은 mysql 인덱스는 자동으로 사용되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.