Heim Datenbank MySQL-Tutorial MYSQL IN 与 EXISTS 的优化示例介绍

MYSQL IN 与 EXISTS 的优化示例介绍

Jun 07, 2016 pm 04:28 PM
exists mysql 介绍 优化 原则 示例

优化原则:小表驱动大表,即小的数据集驱动大的数据集。 ############# 原理 (RBO) ##################### select * from A where id in (select id from B)等价于:for select id from Bfor select * from A where A.id = B.id 当B表的数据集必须小于A表的数

优化原则:小表驱动大表,即小的数据集驱动大的数据集。

############# 原理 (RBO) #####################

1

2

3

4

select * from A where id in (select id from B)

等价于:

for select id from B

for select * from A where A.id = B.id

Nach dem Login kopieren

当B表的数据集必须小于A表的数据集时,用in优于exists。

1

2

3

4

select * from A where exists (select 1 from B where B.id = A.id)

等价于

for select * from A

for select * from B where B.id = A.id

Nach dem Login kopieren

当A表的数据集系小于B表的数据集时,用exists优于in。

注意:A表与B表的ID字段应建立索引。

例如:

1

2

3

4

/** 执行时间:0.313s **/

SELECT SQL_NO_CACHE * FROM rocky_member m WHERE EXISTS (SELECT 1 FROM rocky_vip_appro a WHERE m.ID = a.user_id AND a.passed = 1);

/** 执行时间:0.160s **/

SELECT SQL_NO_CACHE * FROM rocky_member m WHERE m.ID in(SELECT ID FROM rocky_vip_appro WHERE passed = 1);

Nach dem Login kopieren

not in 和not exists用法类似。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHPs Fähigkeiten zur Verarbeitung von Big-Data-Strukturen PHPs Fähigkeiten zur Verarbeitung von Big-Data-Strukturen May 08, 2024 am 10:24 AM

PHPs Fähigkeiten zur Verarbeitung von Big-Data-Strukturen

Wie optimiert man die MySQL-Abfrageleistung in PHP? Wie optimiert man die MySQL-Abfrageleistung in PHP? Jun 03, 2024 pm 08:11 PM

Wie optimiert man die MySQL-Abfrageleistung in PHP?

Wie verwende ich MySQL-Backup und -Wiederherstellung in PHP? Wie verwende ich MySQL-Backup und -Wiederherstellung in PHP? Jun 03, 2024 pm 12:19 PM

Wie verwende ich MySQL-Backup und -Wiederherstellung in PHP?

Wie füge ich mit PHP Daten in eine MySQL-Tabelle ein? Wie füge ich mit PHP Daten in eine MySQL-Tabelle ein? Jun 02, 2024 pm 02:26 PM

Wie füge ich mit PHP Daten in eine MySQL-Tabelle ein?

So beheben Sie den Fehler „mysql_native_password nicht geladen' unter MySQL 8.4 So beheben Sie den Fehler „mysql_native_password nicht geladen' unter MySQL 8.4 Dec 09, 2024 am 11:42 AM

So beheben Sie den Fehler „mysql_native_password nicht geladen' unter MySQL 8.4

Wie verwende ich gespeicherte MySQL-Prozeduren in PHP? Wie verwende ich gespeicherte MySQL-Prozeduren in PHP? Jun 02, 2024 pm 02:13 PM

Wie verwende ich gespeicherte MySQL-Prozeduren in PHP?

Detaillierte Einführung in die Funktionen des Samsung S24ai Detaillierte Einführung in die Funktionen des Samsung S24ai Jun 24, 2024 am 11:18 AM

Detaillierte Einführung in die Funktionen des Samsung S24ai

C++-Programmoptimierung: Techniken zur Reduzierung der Zeitkomplexität C++-Programmoptimierung: Techniken zur Reduzierung der Zeitkomplexität Jun 01, 2024 am 11:19 AM

C++-Programmoptimierung: Techniken zur Reduzierung der Zeitkomplexität

See all articles