偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

SQL高效查詢建議,你學(xué)會了嗎?

數(shù)據(jù)庫 其他數(shù)據(jù)庫
為什么別人的查詢只要幾秒,而你的查詢語句少則十多秒,多則十幾分鐘甚至幾個小時?今天我們來看看如何寫出比較高效的查詢語句。

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

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

1.盡量不要使用NULL當(dāng)默認(rèn)值

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

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

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

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

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

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

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

3.應(yīng)盡量避免在 WHERE子句中使用 OR

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

例如:

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來進(jìn)行優(yōu)化

例如:

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

可以改寫成:

SELECT * FROM T1 WHERE NUM BETWEEN 5 AND 8.

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

子查詢中經(jīng)常會使用到IN,如果換成EXISTS做關(guān)聯(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.模糊匹配盡量使用前綴匹配

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

例如:

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

或者

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

均不會走索引,只有當(dāng)如下情況

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

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

責(zé)任編輯:武曉燕 來源: SQL數(shù)據(jù)庫開發(fā)
相關(guān)推薦

2024-06-12 08:36:25

2023-09-06 11:31:24

MERGE用法SQL

2024-01-19 08:25:38

死鎖Java通信

2024-02-04 00:00:00

Effect數(shù)據(jù)組件

2023-07-26 13:11:21

ChatGPT平臺工具

2023-01-10 08:43:15

定義DDD架構(gòu)

2023-10-13 09:04:09

2023-08-01 12:51:18

WebGPT機(jī)器學(xué)習(xí)模型

2024-01-02 12:05:26

Java并發(fā)編程

2023-10-10 11:04:11

Rust難點內(nèi)存

2024-05-06 00:00:00

InnoDBView隔離

2023-01-30 09:01:54

圖表指南圖形化

2024-07-31 08:39:45

Git命令暫存區(qū)

2023-12-12 08:02:10

2022-07-08 09:27:48

CSSIFC模型

2024-08-06 09:47:57

2023-12-27 09:32:47

SQL語句數(shù)據(jù)

2023-06-05 08:36:04

SQL函數(shù)RANK()

2023-03-28 07:36:01

SQL數(shù)據(jù)庫管理

2022-03-08 08:39:22

gRPC協(xié)議云原生
點贊
收藏

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