日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
SQL高效查詢建議,你學會了嗎?

為什么別人的查詢只要幾秒,而你的查詢語句少則十多秒,多則十幾分鐘甚至幾個小時?與你的查詢語句是否高效有很大關系。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網綜合服務,包含不限于成都網站制作、網站設計、外貿網站建設、墨竹工卡網絡推廣、微信小程序定制開發(fā)、墨竹工卡網絡營銷、墨竹工卡企業(yè)策劃、墨竹工卡品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供墨竹工卡建站搭建服務,24小時服務熱線:18980820575,官方網址:www.cdcxhl.com

今天我們來看看如何寫出比較高效的查詢語句。

1.盡量不要使用NULL當默認值

在有索引的列上如果存在NULL值會使得索引失效,降低查詢速度,該如何優(yōu)化呢?例如:

SELECT *  FROM [Sales].[Temp_SalesOrder] WHERE UnitPrice IS NULL

我們可以將NULL的值設置成0或其他固定數(shù)值,這樣保證索引能夠繼續(xù)有效。

SELECT *  FROM [Sales].[Temp_SalesOrder] WHERE UnitPrice =0

這是改寫后的查詢語句,效率會比上面的快很多。

2.盡量不要在WHERE條件語句中使用!=或<>

在WHERE語句中使用!=或<>也會使得索引失效,進而進行全表掃描,這樣就會花費較長時間了。

3.應盡量避免在 WHERE子句中使用 OR

遇到有OR的情況,我們可以將OR使用UNION ALL來進行改寫

例如:

SELECT * FROM T1 WHERE NUM=10 OR NUM=20

可以改寫成

SELECT * FROM T1 WHERE NUM=10

UNION ALL

SELECT * FROM T1 WHERE NUM=20

4.IN和NOT IN也要慎用

遇到連續(xù)確切值的時候 ,我們可以使用BETWEEN AND來進行優(yōu)化

例如:

SELECT * FROM T1 WHERE NUM IN (5,6,7,8)

可以改寫成:

SELECT * FROM T1 WHERE NUM BETWEEN 5 AND 8.

5.子查詢中的IN可以使用EXISTS來代替

子查詢中經常會使用到IN,如果換成EXISTS做關聯(lián)查詢會更快

例如:

SELECT * FROM T1 WHERE ORDER_ID IN (SELECT ORDER_ID FROM ORDER WHERE PRICE>20);

可以改寫成:

SELECT * FROM T1 AS A WHERE EXISTS (SELECT 1 FROM ORDER  AS B WHERE A.ORDER_ID=B.ORDER_ID AND B.PRICE>20)

雖然代碼量可能比上面的多一點,但是在使用效果上會優(yōu)于上面的查詢語句。

6.模糊匹配盡量使用前綴匹配

在進行模糊查詢,使用LIKE時盡量使用前綴匹配,這樣會走索引,減少查詢時間。

例如:

SELECT * FROM T1 WHERE NAME LIKE '%李四%'

或者

SELECT * FROM T1 WHERE NAME LIKE '%李四'

均不會走索引,只有當如下情況

SELECT * FROM T1 WHERE NAME LIKE '李四%'才會走索引。

上述這些都是平常經常會遇到的,就直接告訴大家怎么操作了,具體可以下去做試驗嘗試一下。


分享標題:SQL高效查詢建議,你學會了嗎?
文章路徑:http://m.5511xx.com/article/dhdpess.html