mysql 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
熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Windows10有一個免費的防毒程序,叫做WindowsDefender,它提供了即時保護,可以在電腦上進行掃描。這也使您可以執行自訂掃描,從而可以指定特定的資料夾或磁碟機來掃描惡意軟體。因為你只需要掃描這個資料夾,所以掃描的時間會比掃描整台機器快很多。如下所示,我們為您的特定資料夾提供了兩個客製化掃描的方法。 Win10是如何使用WindowsDefender掃描資料夾中的惡意軟體。若要掃描個別資料夾及其子資料夾,最簡單的方式是右鍵點選該資料夾,然後選擇「使用WindowsDefender掃描

許多使用者使用惠普印表機掃描文件之後,想要直接掃描成一個pdf文件,但是不知道怎麼樣操作才能成功,只要在電腦中使用掃描器程式就可以了。惠普印表機掃描怎麼掃描成一個pdf:1、先開啟電腦上的掃描器程式。 2、然後在頁面設定中選擇「另存PDF」。 3、然後在右下角按「掃描」開始掃描第一個檔案。 4.完成之後,點左下角的「+」圖標,就可以增加新的掃描頁面。 5.就可以看到原本文件邊有新的掃描框。 7.最後完成之後,選擇「儲存」就可以儲存這些PDF檔案了。

1.開啟網易雲音樂,點選我的,點選本地音樂。 2、點選右上角的三個點。 3.點擊掃描本地音樂。 4.點選下方的掃描設定。 5.往左滑動過濾小於60秒的音訊檔案。 6.返回點擊全盤掃描,就可以掃描到全部的本地音樂的。

在夸克軟體中,豐富多樣的功能為用戶帶來了便利和樂趣,其中掃描功能特別受歡迎。透過掃描功能,使用者可以輕鬆掃描二維碼,無論是快速登入網站、新增好友,或是下載應用,都能一鍵完成。那麼,究竟該如何使用夸克二維碼的掃描功能呢,還不知道究竟該如何使用的玩家們千萬不容錯過,快來跟著本站小編為大家帶來的本文詳細了解一下吧。夸克二維碼怎麼掃答案:【夸克】-【三橫圖示】-【拍照掃描】。具體步驟:1、先打開夸克軟體,進入到首頁後我們點選右下角的【三橫圖示】;2、然後在我的頁面中往上滑動到頁面的下方找到【拍照掃描】

處理方法:1、在ps軟體中開啟要處理的掃描圖片;2、點擊頂部工具列的「濾鏡」-「銳利化」-「智慧銳利化」;3、在彈出的視窗中,根據需求選擇銳利化半徑,點選“確定”;4、點選“檔案”-“儲存為”,另存為檔案即可。

如何在PHP中使用二維碼掃描?二維碼掃描在現代生活中已經變得非常常見。無論是支付寶、微信支付或其他各種應用,都可以透過掃描二維碼來進行快速的支付或資訊傳遞。在PHP中,我們也可以很方便地實現二維碼的掃描功能。本文將介紹如何使用PHP進行二維碼掃描,並提供對應的程式碼範例。首先,我們需要一個PHP的二維碼產生函式庫,這裡我們選擇使用"PHPQRCode"函式庫。

在C#開發中,隨著網路技術的不斷發展,安全問題也愈加嚴峻。為保障應用程式的安全性,開發人員需要注意安全漏洞的掃描與修復。本文將從以下幾個面向介紹注意事項。一、注意資料傳輸安全在應用程式中,資料傳輸安全非常重要。特別是在使用網路傳輸資料時,應該盡可能使用安全的協定和加密演算法。為了保障資料的完整性和機密性,建議使用安全通訊端層(SSL)或傳輸層安全性(TLS)等

2022年,Apple為iPhone和iPad上的Notes應用程式添加了一項新功能,可讓您快速掃描列印或手寫文字並將其儲存為數位文字格式。繼續閱讀以了解其工作原理。在早期版本的iOS和iPadOS上,將文字掃描到Apple的Notes應用程式中需要點擊筆記的文字字段,然後點擊彈出式選單中的「即時文字」選項。然而,Apple在2022年使現實世界的筆記數位化變得更加容易。以下步驟向您展示如何在執行iOS15.4或iPadOS15.4及更高版本的裝置上完成此操作。在iPhone或iPad上,打開“
