久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

sql優化的方法

114次閱讀
沒有評論

共計 1517 個字符,預計需要花費 4 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

丸趣 TV 小編給大家分享一下 sql 優化的方法,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

sql 優化的方法:1、盡量避免使用【select *】,無用的字段會降低查詢效率;2、避免使用 in 和 not in,可以選擇 between 和 exists 代替;3、避免使用 or,可以選擇 union 代替。

sql 優化的方法:

1、在表中建立索引,優先考慮 where、group by 使用到的字段。

2、盡量避免使用 select *,返回無用的字段會降低查詢效率。如下:

SELECT * FROM t

優化方式:使用具體的字段代替 *,只返回使用到的字段。

3、盡量避免使用 in 和 not in,會導致數據庫引擎放棄索引進行全表掃描。如下:

SELECT * FROM t WHERE id IN (2,3)
SELECT * FROM t1 WHERE username IN (SELECT username FROM t2)

優化方式:如果是連續數值,可以用 between 代替。如下:

SELECT * FROM t WHERE id BETWEEN 2 AND 3

如果是子查詢,可以用 exists 代替。如下:

SELECT * FROM t1 WHERE EXISTS (SELECT * FROM t2 WHERE t1.username = t2.username)

4、盡量避免使用 or,會導致數據庫引擎放棄索引進行全表掃描。如下:

SELECT * FROM t WHERE id = 1 OR id = 3

優化方式:可以用 union 代替 or。如下:

SELECT * FROM t WHERE id = 1
UNION
SELECT * FROM t WHERE id = 3

(PS:如果 or 兩邊的字段是同一個,如例子中這樣。貌似兩種方式效率差不多,即使 union 掃描的是索引,or 掃描的是全表)

5、盡量避免在字段開頭模糊查詢,會導致數據庫引擎放棄索引進行全表掃描。如下:

SELECT * FROM t WHERE username LIKE  %li% 

優化方式:盡量在字段后面使用模糊查詢。如下:

SELECT * FROM t WHERE username LIKE  li% 

6、盡量避免進行 null 值的判斷,會導致數據庫引擎放棄索引進行全表掃描。如下:

SELECT * FROM t WHERE score IS NULL

優化方式:可以給字段添加默認值 0,對 0 值進行判斷。如下:

SELECT * FROM t WHERE score = 0

7、盡量避免在 where 條件中等號的左側進行表達式、函數操作,會導致數據庫引擎放棄索引進行全表掃描。如下:

SELECT * FROM t2 WHERE score/10 = 9
SELECT * FROM t2 WHERE SUBSTR(username,1,2) =  li 

優化方式:可以將表達式、函數操作移動到等號右側。如下:

SELECT * FROM t2 WHERE score = 10*9
SELECT * FROM t2 WHERE username LIKE  li% 

8、當數據量大時,避免使用 where 1= 1 的條件。通常為了方便拼裝查詢條件,我們會默認使用該條件,數據庫引擎會放棄索引進行全表掃描。如下:

SELECT * FROM t WHERE 1=1

優化方式:用代碼拼裝 sql 時進行判斷,沒 where 加 where,有 where 加 and。

看完了這篇文章,相信你對“sql 優化的方法”有了一定的了解,如果想了解更多相關知識,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-16發表,共計1517字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 九龙坡区| 凤庆县| 哈密市| 梁山县| 汉寿县| 宜兴市| 庄浪县| 鹰潭市| 沁源县| 新邵县| 渝中区| 清水县| 桦川县| 巴里| 安平县| 中宁县| 澳门| 台前县| 玉树县| 阿拉尔市| 漳浦县| 伊宁市| 沧源| 平江县| 包头市| 左贡县| 溆浦县| 平远县| 冕宁县| 五河县| 永年县| 温宿县| 城步| 安丘市| 江阴市| 高平市| 伊宁县| 白玉县| 苏州市| 五大连池市| 贵港市|