第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

SQL中where子句的順序重要嗎?

SQL中where子句的順序重要嗎?

慕工程0101907 2019-11-30 14:17:30
假設(shè)我有一個(gè)叫PEOPLE3列的表ID, LastName, FirstName,這些列都沒有索引。LastName比較獨(dú)特,F(xiàn)irstName卻不那么獨(dú)特。如果我進(jìn)行2次搜索:select * from PEOPLE where FirstName="F" and LastName="L" select * from PEOPLE where LastName="L" and FirstName="F"我認(rèn)為第二個(gè)更快,因?yàn)長astName在where子句中,更獨(dú)特的標(biāo)準(zhǔn)()首先出現(xiàn),并且記錄將更有效地消除。我認(rèn)為優(yōu)化器不夠聰明,無法優(yōu)化第一個(gè)sql。我的理解正確嗎?
查看完整描述

3 回答

?
繁花如伊

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊

不,順序無關(guān)緊要(或至少:不重要)。

任何體面的查詢優(yōu)化器都會查看該子句的所有部分,WHERE并找出滿足該查詢的最有效方法。

我知道SQL Server查詢優(yōu)化器將選擇合適的索引-無論您有兩個(gè)條件都處于哪個(gè)順序。我假設(shè)其他RDBMS也會有類似的策略。

重要的是您是否有合適的索引!

對于SQL Server,如果您具有以下條件,它將可能使用索引:

  • 索引 (LastName, FirstName)

  • 索引 (FirstName, LastName)

  • (LastName)或或(FirstName)(或兩者)的索引

另一方面-對于SQL Server而言-如果您習(xí)慣于從表中SELECT *獲取所有列,并且表很小,則查詢優(yōu)化器很有可能只會進(jìn)行表(或聚集索引)掃描而不是使用一個(gè)索引(因?yàn)椴檎艺麄€(gè)數(shù)據(jù)頁面以獲取所有其他列的代價(jià)非常快)。


查看完整回答
反對 回復(fù) 2019-11-30
?
慕村9548890

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊

WHERE子句的順序不應(yīng)在符合SQL標(biāo)準(zhǔn)的數(shù)據(jù)庫中有所作為。在大多數(shù)數(shù)據(jù)庫中,不能保證評估順序。


不要以為SQL關(guān)心順序。以下在SQL Server中生成錯(cuò)誤:


select *

from INFORMATION_SCHEMA.TABLES

where ISNUMERIC(table_name) = 1 and CAST(table_name as int) <> 0

如果首先執(zhí)行此子句的第一部分,則僅將數(shù)字表名強(qiáng)制轉(zhuǎn)換為整數(shù)。但是,它失敗了,提供了一個(gè)清楚的示例,表明SQL Server(與其他數(shù)據(jù)庫一樣)不關(guān)心WHERE語句中子句的順序。


查看完整回答
反對 回復(fù) 2019-11-30
?
慕神8447489

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊

ANSI SQL草稿2003 5WD-01-Framework-2003-09.pdf


6.3.3.3規(guī)則評估順序


...


如果優(yōu)先級不是由格式或括號確定的,則通常從左到右執(zhí)行表達(dá)式的有效評估。但是,取決于表達(dá)式是否實(shí)際上是從左到右求值,這取決于實(shí)現(xiàn),特別是在操作數(shù)或運(yùn)算符可能導(dǎo)致條件升高或是否可以在不完全評估表達(dá)式所有部分的情況下確定表達(dá)式的結(jié)果時(shí)。


查看完整回答
反對 回復(fù) 2019-11-30
  • 3 回答
  • 0 關(guān)注
  • 1200 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號