데이터 베이스 MySQL 튜토리얼 mysql or条件可以使用索引而避免全表扫描_MySQL

mysql or条件可以使用索引而避免全表扫描_MySQL

Jun 01, 2016 pm 01:43 PM
스캐닝 표면

bitsCN.com

 

在某些情况下,or条件可以避免全表扫描的。

 

1 .where 语句里面如果带有or条件, myisam表能用到索引,innodb不行。

 

1)myisam表:

 CREATE TABLE IF NOT EXISTS `a` (

  `id` int(1) NOT NULL AUTO_INCREMENT,

  `uid` int(11) NOT NULL,

  `aNum` char(20) DEFAULT NULL,

  PRIMARY KEY (`id`),

  KEY `uid` (`uid`)

) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

 

mysql> explain select * from a where id=1 or uid =2;

+----+-------------+-------+-------------+---------------+-------------+---------+------+------+---------------------------------------+

| id | select_type | table | type        | possible_keys | key         | key_len | ref  | rows | Extra                                 |

+----+-------------+-------+-------------+---------------+-------------+---------+------+------+---------------------------------------+

|  1 | SIMPLE      | a     | index_merge | PRIMARY,uid   | PRIMARY,uid | 4,4     | NULL |    2 | Using union(PRIMARY,uid); Using where |

+----+-------------+-------+-------------+---------------+-------------+---------+------+------+---------------------------------------+

1 row in set (0.00 sec)

 

2)innodb表:

 

CREATE TABLE IF NOT EXISTS `a` (

  `id` int(1) NOT NULL AUTO_INCREMENT,

  `uid` int(11) NOT NULL,

  `aNum` char(20) DEFAULT NULL,

  PRIMARY KEY (`id`),

  KEY `uid` (`uid`)

) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

 

 

mysql>  explain select * from a where id=1 or uid =2;

+----+-------------+-------+------+---------------+------+---------+------+------+-------------+

| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra       |

+----+-------------+-------+------+---------------+------+---------+------+------+-------------+

|  1 | SIMPLE      | a     | ALL  | PRIMARY,uid   | NULL | NULL    | NULL |    5 | Using where |

+----+-------------+-------+------+---------------+------+---------+------+------+-------------+

1 row in set (0.00 sec)

 

 

2 .必须所有的or条件都必须是独立索引:

+-------+----------------------------------------------------------------------------------------------------------------------

| Table | Create Table

+-------+----------------------------------------------------------------------------------------------------------------------

| a     | CREATE TABLE `a` (

  `id` int(1) NOT NULL AUTO_INCREMENT,

  `uid` int(11) NOT NULL,

  `aNum` char(20) DEFAULT NULL,

  PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 |

+-------+----------------------------------------------------------------------------------------------------------------------

1 row in set (0.00 sec)

 

explain查看:

mysql> explain select * from a where id=1 or uid =2;

+----+-------------+-------+------+---------------+------+---------+------+------+-------------+

| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra       |

+----+-------------+-------+------+---------------+------+---------+------+------+-------------+

|  1 | SIMPLE      | a     | ALL  | PRIMARY       | NULL | NULL    | NULL |    5 | Using where |

+----+-------------+-------+------+---------------+------+---------+------+------+-------------+

1 row in set (0.00 sec)

 

全表扫描了。

 

摘自 hguisu的专栏

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

핫 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를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

HP 프린터에서 PDF로 스캔하는 방법 HP 프린터에서 PDF로 스캔하는 방법 Feb 19, 2024 am 10:06 AM

HP 프린터를 사용하여 문서를 스캔한 후 많은 사용자가 문서를 직접 PDF 파일로 스캔하고 싶지만 컴퓨터에서 스캐너 프로그램을 사용하기만 하면 됩니다. HP 프린터에서 PDF로 스캔하는 방법: 1. 먼저 컴퓨터에서 스캐너 프로그램을 엽니다. 2. 그런 다음 페이지 설정에서 "PDF 저장"을 선택합니다. 3. 그런 다음 오른쪽 하단에 있는 "스캔"을 눌러 첫 번째 파일 스캔을 시작합니다. 4. 완료 후 왼쪽 하단에 있는 "+" 아이콘을 클릭하여 새 스캔 페이지를 추가하세요. 5. 원본 파일 옆에 새로운 스캔 상자가 표시됩니다. 7. 완료되면 "저장"을 선택하여 PDF 파일을 저장합니다.

Windows Defender를 사용하여 Win10에서 폴더를 검사하는 방법. Windows Defender를 사용하여 Win10에서 폴더를 검사하는 방법. Jul 10, 2023 pm 11:17 PM

Windows 10에는 실시간 보호 기능을 제공하고 컴퓨터를 검사할 수 있는 Windows Defender라는 무료 바이러스 백신 프로그램이 있습니다. 또한 이를 통해 사용자 정의 검사를 수행할 수 있으므로 특정 폴더나 드라이브를 지정하여 맬웨어를 검사할 수 있습니다. 이 폴더만 스캔하면 되므로 전체 시스템을 스캔하는 것보다 스캔 시간이 훨씬 빠릅니다. 아래와 같이 특정 폴더에 대한 검색을 사용자 정의하는 두 가지 방법을 제공합니다. Windows Defender를 사용하여 Win10에서 폴더에 맬웨어가 있는지 검사하는 방법. 개별 폴더와 하위 폴더를 검사하려면 가장 쉬운 방법은 폴더를 마우스 오른쪽 버튼으로 클릭하고 Windows Defender로 검사를 선택하는 것입니다.

NetEase Cloud Music은 어떻게 로컬 음악을 스캔합니까?_NetEase Cloud Music은 로컬 음악을 스캔합니다 튜토리얼 NetEase Cloud Music은 어떻게 로컬 음악을 스캔합니까?_NetEase Cloud Music은 로컬 음악을 스캔합니다 튜토리얼 Mar 25, 2024 pm 10:21 PM

1. NetEase Cloud Music을 열고 내를 클릭한 다음 로컬 음악을 클릭합니다. 2. 오른쪽 상단에 있는 세 개의 점을 클릭하세요. 3. 로컬 음악을 검색하려면 클릭하세요. 4. 아래의 스캔 설정을 클릭하세요. 5. 60초보다 짧은 오디오 파일을 필터링하려면 왼쪽으로 스와이프합니다. 6. 돌아가서 전체 검색을 클릭하여 모든 로컬 음악을 검색합니다.

Quark QR 코드를 스캔하는 방법 Quark QR 코드를 스캔하는 방법 Feb 27, 2024 pm 04:10 PM

Quark 소프트웨어에는 다양한 기능이 사용자에게 편리함과 재미를 선사하며, 그 중 스캐닝 기능이 특히 인기가 높습니다. 스캔 기능을 통해 사용자는 QR 코드를 쉽게 스캔할 수 있으며, 웹사이트에 빠르게 로그인하거나 친구를 추가하거나 애플리케이션을 다운로드하는 등 모든 작업을 한 번의 클릭으로 수행할 수 있습니다. 그렇다면 Quark QR 코드의 스캔 기능을 사용하는 방법은 무엇입니까? 아직 사용법을 모르는 플레이어는 이 웹사이트의 편집자가 가져온 기사를 따라가서 자세히 알아보십시오. Quark QR 코드를 스캔하고 답변하는 방법: [Quark]-[가로 아이콘 3개]-[사진 촬영 및 스캔]. 구체적인 단계: 1. 먼저 Quark 소프트웨어를 열고 홈페이지에 들어간 후 오른쪽 하단에 있는 [가로 아이콘 3개]를 클릭합니다. 2. 그런 다음 내 페이지를 페이지 하단으로 밀어 올려 [사진 스캔]을 찾습니다. ]

흐릿한 스캔 문서를 처리하는 방법 흐릿한 스캔 문서를 처리하는 방법 Jan 05, 2021 pm 03:09 PM

처리 방법: 1. PS 소프트웨어에서 처리할 스캔 이미지를 엽니다. 2. 상단 도구 모음에서 "필터" - "선명화" - "스마트 선명화"를 클릭합니다. 3. 팝업 창에서 원하는 대로 선택합니다. 반경을 선명하게 하고 "확인"을 클릭하세요. 4. "파일" - "다른 이름으로 저장"을 클릭하고 파일로 저장하세요.

Java 개발 프로젝트의 보안 취약점을 검사하고 복구하는 방법 Java 개발 프로젝트의 보안 취약점을 검사하고 복구하는 방법 Nov 03, 2023 pm 02:17 PM

Java 개발 프로젝트의 보안 취약점을 검색하고 복구하는 방법 인터넷의 급속한 발전으로 인해 Java 개발은 많은 회사와 개인에게 첫 번째 선택이 되었습니다. 그리고 이에 수반되는 보안 문제는 점차 중요해지고 있습니다. 보안 취약성이 프로젝트에 가져오는 잠재적인 위험은 무시할 수 없습니다. 따라서 Java 개발 프로젝트에서는 보안 취약점을 검사하고 복구하는 것이 중요합니다. 이 기사에서는 개발자가 보안 취약성을 효과적으로 검사하고 복구하는 데 도움이 되는 몇 가지 방법과 도구를 소개합니다. 보안 취약점을 스캔하고 해결하기 전에 일반적인 보안 취약점을 이해하세요.

PHP에서 QR 코드 스캔을 사용하는 방법은 무엇입니까? PHP에서 QR 코드 스캔을 사용하는 방법은 무엇입니까? Aug 19, 2023 pm 07:49 PM

PHP에서 QR 코드 스캔을 사용하는 방법은 무엇입니까? QR 코드 스캔은 현대 생활에서 매우 보편화되었습니다. Alipay, WeChat Pay 또는 기타 다양한 애플리케이션이든 QR 코드를 스캔하여 빠르게 결제하거나 정보를 전송할 수 있습니다. PHP에서는 QR 코드 스캔 기능도 쉽게 구현할 수 있습니다. 이 기사에서는 QR 코드 스캔에 PHP를 사용하는 방법을 소개하고 해당 코드 예제를 제공합니다. 먼저, PHP QR 코드 생성 라이브러리가 필요합니다. 여기서는 "PHPQRCode" 라이브러리를 사용하도록 선택합니다.

iPhone에서 QR 코드를 스캔하는 방법 iPhone에서 QR 코드를 스캔하는 방법 Jul 20, 2023 am 09:13 AM

Apple은 이 편리한 기능을 기기에 내장하여 iPhone의 카메라에서 쉽게 접근할 수 있도록 하여 기기의 QR 코드를 자동으로 스캔할 수 있게 해줍니다. QR 코드는 Quick Response Code의 약자로 기본적으로 카메라가 내장된 다양한 스마트폰 및 기타 전자 장치에서 쉽게 스캔하고 해석할 수 있는 2차원 바코드입니다. QR 코드를 스캔하면 사용자는 일반적으로 특정 웹사이트로 이동하거나 앱 내 특정 기능을 활성화하라는 메시지를 받게 됩니다. 이 놀라울 정도로 편리한 기능은 Apple의 iPhone을 포함한 최신 스마트폰에서 점점 일반화되고 있으며 사용자가 최소한의 노력으로 정보, 서비스 또는 기능에 액세스할 수 있는 편리한 방법입니다. 많은 회사에서는 실제 제품에 이 기능을 사용합니다. 여기서 제품의 QR 코드를 스캔하면

See all articles