찾다
데이터 베이스MySQL 튜토리얼어떤 상황에서 mysql 인덱스가 실패합니까?

mysql 인덱스 실패의 여러 경우: 1. 조건이 있거나 있는 경우 인덱스가 있는 조건이 있어도 사용되지 않습니다. 2. 다중 열 인덱스의 경우 첫 번째 부분이 사용되지 않습니다. 3. like 쿼리가 %로 시작하고 인덱스가 유효하지 않습니다. 4. 필드 유형이 문자열인 경우 조건의 데이터가 따옴표로 묶이지 않습니다.

어떤 상황에서 mysql 인덱스가 실패합니까?

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

인덱스가 항상 적용되지는 않습니다. 예를 들어 다음 상황에서는 인덱스가 실패합니다.

1 조건이 있는 경우, 조건부 인덱스가 있어도 사용하지 않습니다(그래서 가급적 적게 사용하는 것이 좋습니다)

참고 : or를 사용하고 싶다면 or 조건의 각 열에만 인덱스를 추가하면 됩니다.

2. 다중 열 인덱스의 경우 첫 번째 인덱스가 아닌 경우 부분을 ​​사용하면 색인이 사용되지 않습니다

3. like 쿼리는 %로 시작하는 경우 like 접두사가 %가 없고 접미사에 %가 있으면 색인이 유효하지 않습니다. 유효합니다.

4. 열 유형이 문자열 인 경우 데이터를 따옴표로 인용해야합니다. 그렇지 않으면 MySQL 인 인덱스가 사용되지 않습니다 전체 테이블 스캔을 사용하는 것이 인덱스를 사용하는 것보다 빠르다고 추정하면 인덱스가 사용되지 않습니다. 또한 'Handler_read%'와 같은 상태를 표시합니다. 인덱스를 사용하는 쿼리 handler_read_rnd_next: 값이 높을수록 쿼리가 비효율적임

1) 쿼리 조건이 없거나 쿼리 조건이 인덱스되지 않음

2 ) 선행 열이 쿼리 조건에 사용



3) 쿼리 개수는 대형 테이블의 대부분이므로 30% 이상이어야 합니다.

4) 인덱스 자체가 유효하지 않습니다

5) 쿼리 조건이 인덱스 열에 함수를 사용하거나 인덱스 열에 연산을 수행합니다. /,! 등) 오류 예: select * from test where id-1=9; 올바른 예: select * from test where

6) 작은 테이블 쿼리의 경우

7) Index를 사용하지 말라는 메시지

8) 통계가 비현실적입니다.

9) CBO 계산 비용이 너무 많이 듭니다. 실제로 위 상황도 포함되는데, 이는 테이블이 차지하는 블록이 인덱스보다 작다는 것을 의미한다.

10) 테이블의 tu_mdn 필드는 varchar2(20)로 정의되어 있지만, 이는 개발 시 자주 발생하는 실수입니다. as 숫자 유형이 where 조건과 함께 Oracle에 전달되어 인덱스가 실패하게 됩니다. 잘못된 예: select * from test where tu_mdn=13333333333; 올바른 예: select * from test where tu_mdn='13333333333';

12 ) 1, 2,별도>,13, 앞에 퍼센트 기호가 있는 "%_"

14, 테이블이 분석되지 않았습니다.

15, 복합 인덱스의 첫 번째 위치가 아닌 인덱스 열을 별도로 인용합니다.

16, 문자 필드가 숫자인 경우 where 조건에 인용 부호를 추가하지 않습니다.

17, 인덱스 열 작업을 위해서는 변수가 times 변수와 테이블을 사용하는 경우

18, 존재하지 않습니다. 필드는 날짜 변수를 사용합니다. 또는 그 반대의 경우도 마찬가지입니다.

20, B-트리 인덱스는 null인 경우 이동하지 않고, null이 아닌 경우 이동하고, 비트맵 인덱스는 null인 경우 이동하고, null이 아닌 경우

21, 결합 인덱스는 null이 아닙니다. 특정 순서 없이 생성된 모든 인덱스 열이 사용됩니다. null인 경우 인덱스의 첫 번째 열과 함께 사용해야 합니다. 인덱스의 첫 번째 위치 조건이 null이면 다른 인덱스 열이 가능합니다. be는 null입니다(그러나 모든 열이 null을 만족해야 함). 또는 = 값, 인덱스의 첫 번째 위치가 값인 경우 다른 인덱스 열은 어떤 상황에서도 가능합니다(null = 값 포함). 위의 두 경우 모두 진행됩니다. 다른 상황에서는 진행되지 않습니다.

위 내용은 어떤 상황에서 mysql 인덱스가 실패합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

mysql怎么替换换行符mysql怎么替换换行符Apr 18, 2022 pm 03:14 PM

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

mysql的msi与zip版本有什么区别mysql的msi与zip版本有什么区别May 16, 2022 pm 04:33 PM

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

mysql怎么去掉第一个字符mysql怎么去掉第一个字符May 19, 2022 am 10:21 AM

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

mysql怎么将varchar转换为int类型mysql怎么将varchar转换为int类型May 12, 2022 pm 04:51 PM

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

MySQL复制技术之异步复制和半同步复制MySQL复制技术之异步复制和半同步复制Apr 25, 2022 pm 07:21 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

带你把MySQL索引吃透了带你把MySQL索引吃透了Apr 22, 2022 am 11:48 AM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

mysql怎么判断是否是数字类型mysql怎么判断是否是数字类型May 16, 2022 am 10:09 AM

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.