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

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
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
惠普打印机扫描怎么扫描成一个pdf惠普打印机扫描怎么扫描成一个pdfFeb 19, 2024 am 10:06 AM

很多用户使用惠普打印机扫描文件之后,想要直接扫描成一个pdf文件,但是不知道怎么样操作才能成功,只要在电脑中使用扫描仪程序就可以了。惠普打印机扫描怎么扫描成一个pdf:1、首先打开电脑上的扫描仪程序。2、然后在页面设置中选择“另存PDF”。3、然后在右下角按“扫描”开始扫描第一个文件。4、完成之后,点左下角的“+”图标,就可以增加新的扫描页面。5、就可以看到原本文件边上有新的扫描框。7、最后完成之后,选择“保存”就可以保存这些PDF文件了。

网易云音乐怎么扫描本地音乐_网易云音乐扫描本地音乐教程网易云音乐怎么扫描本地音乐_网易云音乐扫描本地音乐教程Mar 25, 2024 pm 10:21 PM

1、打开网易云音乐,点击我的,点击本地音乐。2、点击右上角的三个点。3、点击扫描本地音乐。4、点击下方的扫描设置。5、往左滑动过滤小于60秒的音频文件。6、返回点击全盘扫描,就可以扫描到全部的本地音乐的。

Win10如何使用WindowsDefender对文件夹进行扫描。Win10如何使用WindowsDefender对文件夹进行扫描。Jul 10, 2023 pm 11:17 PM

Windows10有一个免费的反病毒程序,叫做WindowsDefender,它提供了实时保护,可以在电脑上进行扫描。这也使您可以执行定制扫描,从而可以指定特定的文件夹或驱动器来扫描恶意软件。因为你只需要扫描这个文件夹,所以扫描的时间会比扫描整个机器要快很多。如下所示,我们为您的特定文件夹提供了两个定制扫描的方法。Win10是如何使用WindowsDefender来扫描文件夹中的恶意软件。若要扫描个别文件夹及其子文件夹,最简单的方式是右击该文件夹,然后选择「使用WindowsDefender扫描

夸克二维码怎么扫夸克二维码怎么扫Feb 27, 2024 pm 04:10 PM

在夸克软件中,丰富多样的功能为用户带来了便捷和乐趣,其中扫描功能尤为受欢迎。通过扫描功能,用户可以轻松扫描二维码,无论是快速登录网站、添加好友,还是下载应用,都能一键完成。那么,究竟该如何使用夸克二维码的扫描功能呢,还不知道究竟该如何使用的玩家们千万不容错过,快来跟着本站小编为大家带来的本文详细了解一下吧。夸克二维码怎么扫答案:【夸克】-【三横图标】-【拍照扫描】。具体步骤:1、首先打开夸克软件,进入到首页中后我们点击右下角的【三横图标】;2、然后在我的页面中往上滑动到页面的下方找到【拍照扫描】

扫描出来的文件模糊怎么处理扫描出来的文件模糊怎么处理Jan 05, 2021 pm 03:09 PM

处理方法:1、在ps软件中打开要处理的扫描图片;2、点击顶部工具栏的“滤镜”-“锐化”-“智能锐化”;3、在弹出的窗口中,根据需求选择锐化半径,点击“确定”;4、点击“文件”-“储存为”,另存为一个文件即可。

如何在PHP中使用二维码扫描?如何在PHP中使用二维码扫描?Aug 19, 2023 pm 07:49 PM

如何在PHP中使用二维码扫描?二维码扫描在现代生活中已经变得非常常见。无论是支付宝、微信支付还是其他各种应用,都可以通过扫描二维码来进行快速的支付或者信息传递。在PHP中,我们也可以很方便地实现二维码的扫描功能。本文将介绍如何使用PHP进行二维码扫描,并提供相应的代码示例。首先,我们需要一个PHP的二维码生成库,这里我们选择使用"PHPQRCode"库。

如何进行Java开发项目的安全漏洞扫描与修复如何进行Java开发项目的安全漏洞扫描与修复Nov 03, 2023 pm 02:17 PM

如何进行Java开发项目的安全漏洞扫描与修复随着互联网的快速发展,Java开发已经成为了众多企业和个人的首选。而随之而来的安全问题也逐渐变得重要起来。安全漏洞给项目带来的潜在风险不容忽视。因此,进行Java开发项目的安全漏洞扫描与修复是至关重要的。本文将介绍一些方法和工具,帮助开发者有效地进行安全漏洞扫描与修复。了解常见安全漏洞在进行安全漏洞扫描与修复之前,

如何在iPhone上扫描QR码如何在iPhone上扫描QR码Jul 20, 2023 am 09:13 AM

Apple在设备中内置了这个方便的功能,可以从iPhone上的相机轻松访问它,这将允许您自动扫描设备上的QR码。二维码代表快速响应码,本质上是一种二维条形码,可以通过配备内置摄像头的各种智能手机和其他电子设备轻松扫描和解释。扫描二维码后,用户通常会被定向到特定网站或提示激活应用程序中的特定功能。这种令人难以置信的方便功能在现代智能手机(包括Apple的iPhone)中变得越来越普遍,它是用户以最小的努力访问信息,服务或功能的便捷方式。许多公司在实体产品上使用此功能,您可以扫描其产品上的二维码,然

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.