成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關(guān)于or與in能不能利用索引的探討

數(shù)據(jù)庫(kù) SQL Server 數(shù)據(jù)庫(kù)運(yùn)維
本文將討論的是or與in能不能利用索引,這關(guān)乎數(shù)據(jù)庫(kù)的效能問(wèn)題。作者的研究平臺(tái)基于SQL Server 2000。

說(shuō)說(shuō)數(shù)據(jù)庫(kù)方面的事情。在網(wǎng)上看到了幾種說(shuō)法,我們一起來(lái)分析一下說(shuō)的到底對(duì)不對(duì),是不是準(zhǔn)確的,有沒(méi)有歧義,會(huì)不會(huì)誤導(dǎo)大家。

1、 or會(huì)引起全表掃面。

2、 in會(huì)引起全表掃描。

3、 in會(huì)引起全表掃描,并且和or等效。

4、 or語(yǔ)句使用不當(dāng)會(huì)引起全表掃描。

為了避免一些誤會(huì),同時(shí)也是縮小討論范圍,所以先解釋一個(gè)名詞和說(shuō)一下前提條件。名詞解釋:全表掃描在數(shù)據(jù)庫(kù)中,對(duì)無(wú)索引的表進(jìn)行查詢一般稱為全表掃描。全表掃描是數(shù)據(jù)庫(kù)服務(wù)器用來(lái)搜尋表的每一條記錄的過(guò)程,直到所有符合給定條件的記錄返回為止。 引自:http://baike.baidu.com/view/2010124.htm?fr=ala0_1_1

前提條件

數(shù)據(jù)庫(kù):SQL Server2000 + sp4 (注意:一定要安裝sp4補(bǔ)丁包,如果未安裝任何補(bǔ)丁包可能執(zhí)行計(jì)劃會(huì)和安裝sp4的不一致)

其他數(shù)據(jù)庫(kù)沒(méi)有研究,所以在這里就不討論了。

好了,名詞解釋和前提條件都說(shuō)好了,我們開(kāi)始討論吧。

第四個(gè)說(shuō)法是我用google搜索出來(lái)的,說(shuō)的很明確。or“使用不當(dāng)”才會(huì)引起全表掃描,那么使用得當(dāng)?shù)脑挘@然是可以避免全表掃描的。文章的例子也說(shuō)的很明確。http://www.zbitedu.com/?action-viewthread-tid-39219

在這里不得不贊揚(yáng)一下google的強(qiáng)大,google搜索出來(lái)的結(jié)構(gòu)都是明確的,而且可以把明確的排在***位。而baidu就不管三七二十一,管你對(duì)不對(duì)、是否明確,全都收錄進(jìn)來(lái),然后你自己去分析、思考吧。Bs baidu 一下。

而前三總說(shuō)法就很不明確,和算命先生的那句話有的一拼。即沒(méi)有明確的說(shuō)“一定”會(huì)引起全表掃描,也沒(méi)有說(shuō)有沒(méi)有例外,含含糊糊,極易誤導(dǎo)人。試問(wèn):您有沒(méi)有下意識(shí)的加上了一個(gè)定語(yǔ)“一定”(or一定會(huì)引起全表掃描)呢?如果您沒(méi)有加上“一定”這個(gè)定語(yǔ)的話,那么您有沒(méi)有想過(guò)是否有反例?

如果沒(méi)有反例的話,那么就加上“一定”就是正確的,那么原話為什么不加上?

如果有反例的話,那么原話就完全沒(méi)有交代清楚。 

所以有沒(méi)有反例,這就是一個(gè)很不明確,很誤導(dǎo)人的地方。

當(dāng)然了——in和or是等效的——這句話我是認(rèn)同的。in和or確實(shí)是等效的,數(shù)據(jù)庫(kù)會(huì)把in轉(zhuǎn)換成or的形式。

開(kāi)始分析

以一個(gè)Northwind數(shù)據(jù)庫(kù)的Employees表 為例(這是SQL Server2000里自帶的數(shù)據(jù)庫(kù)),分析幾種SQL語(yǔ)句的執(zhí)行計(jì)劃。

  1. SELECT *   
  2. FROM Employees   
  3. WHERE (EmployeeID IN (2, 4, 5))   
  4. SELECT *   
  5. FROM Employees   
  6. WHERE EmployeeID = 2 or EmployeeID =  4 or EmployeeID =  5  

這兩個(gè)SQL語(yǔ)句的執(zhí)行結(jié)果是一致的,執(zhí)行計(jì)劃也是一致的。我們來(lái)看看EmployeeID字段在有無(wú)索引,有什么類型的索引的情況下,執(zhí)行計(jì)劃都是什么樣子的

1、 EmployeeID不是主鍵(沒(méi)有聚集索引和非聚集索引)

  主鍵索引

從執(zhí)行計(jì)劃里可以明確的看出來(lái),在沒(méi)有索引的情況下,確實(shí)引起了全表掃描。(請(qǐng)不要著急下結(jié)論,還有兩種情況沒(méi)有看呢。)

2、 是主鍵(聚集索引)  

當(dāng)是主鍵,并且是聚集索引的情況下,執(zhí)行計(jì)劃發(fā)生了變化,避免了全表掃描。

3、 不是主鍵,但是設(shè)置了非聚集索引

非聚焦索引

這回執(zhí)行計(jì)劃又發(fā)生了變化,不過(guò)依然沒(méi)有引起全表掃描,只是增加了一個(gè)步驟(使用標(biāo)簽)

本來(lái)想看看只有主鍵,但是主鍵字段不設(shè)置索引(聚集和非聚集)的情況下,執(zhí)行計(jì)劃是什么樣子的,但是發(fā)現(xiàn)一個(gè)小問(wèn)題,我不知道怎么讓設(shè)置成主鍵的字段沒(méi)有任何索引?企業(yè)管理器里是把主鍵和聚集索引強(qiáng)行綁定到一起了,把一個(gè)字段設(shè)置成主鍵,同時(shí)也把聚集索引設(shè)置給了這個(gè)字段。目前我是沒(méi)發(fā)現(xiàn)怎么把這個(gè)主鍵的索引給去掉。也許應(yīng)該用SQL語(yǔ)句的方式給表設(shè)置主鍵吧。這個(gè)就先不研究了。

總結(jié):in和or會(huì)不會(huì)引起全表掃描?根據(jù)情況而定。即根據(jù)是否能夠利用索引而定。

原文標(biāo)題:為or、in平反——or、in到底能不能利用索引?

鏈接:http://www.cnblogs.com/jyk/archive/2010/04/10/1708945.html

【編輯推薦】

  1. Oracle數(shù)據(jù)庫(kù)索引的優(yōu)點(diǎn)與缺點(diǎn)的描述
  2. Oracle數(shù)據(jù)對(duì)象中的索引與視圖的描述
  3. 理解SQL Server 2008索引的存儲(chǔ)結(jié)構(gòu)
  4. Oracle索引如何提高數(shù)據(jù)庫(kù)的查詢效率
  5. Oracle數(shù)據(jù)庫(kù)索引的優(yōu)點(diǎn)與缺點(diǎn)的描述

 

責(zé)任編輯:彭凡 來(lái)源: 博客園
相關(guān)推薦

2019-11-21 09:25:23

AI 數(shù)據(jù)人工智能

2016-05-19 17:10:27

銀行

2013-04-19 10:42:02

打車(chē)軟件大數(shù)據(jù)

2025-04-22 08:00:00

2021-02-26 21:25:08

比特幣投資貨幣

2022-10-20 08:00:37

機(jī)器人ZadigChatOps

2020-10-16 18:33:18

Rust語(yǔ)言前端開(kāi)發(fā)

2023-12-27 08:03:53

Go優(yōu)化代碼

2020-12-21 15:09:23

人工智能安全人臉識(shí)別

2024-04-26 09:37:43

國(guó)產(chǎn)數(shù)據(jù)庫(kù)開(kāi)發(fā)者

2023-04-06 06:55:24

ChatGPTGPT算力

2022-04-24 11:52:04

元宇宙Web3去中心化

2012-06-13 11:01:59

英特爾

2012-05-02 23:24:59

RIM

2011-12-06 10:06:33

云存儲(chǔ)

2022-11-07 08:36:11

2022-12-09 08:22:26

Gradle編譯運(yùn)行

2021-06-15 11:33:48

監(jiān)控微信聊天前端

2025-06-13 02:00:00

系統(tǒng)cookieURL

2024-07-15 11:41:14

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 91资源在线| 亚洲精品乱码久久久久久久久 | 超碰激情 | 一区二区三区不卡视频 | 日韩中文字幕在线视频 | 日韩成人在线视频 | 日韩成人在线播放 | 精品亚洲一区二区三区四区五区高 | 亚洲小视频 | 亚洲成人一二区 | 在线观看亚 | 国产成人高清视频 | 蜜桃黄网 | 91在线播 | 成人亚洲精品久久久久软件 | 91精品久久久久久久久 | 精品国产18久久久久久二百 | 亚洲国产一区二区视频 | 精品国产成人 | 亚洲国产一区二区视频 | 精品毛片| 影音先锋中文字幕在线观看 | 国产精品免费看 | 成人av一区| 久青草影院 | 久久久久久999 | 毛片毛片毛片毛片毛片 | 一级毛片免费 | 欧美精品一区二区免费 | www.se91| 日本韩国欧美在线观看 | 国产精品五区 | 国产欧美日韩久久久 | 欧州一区二区 | 福利视频一区 | 午夜久久av | 九九久久精品 | 亚洲a视频 | 在线免费观看a级片 | 亚洲精品视频免费看 | 亚洲高清av |