中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL優化的方法有哪些

發布時間:2021-06-24 11:49:44 來源:億速云 閱讀:204 作者:chen 欄目:大數據

這篇文章主要介紹“SQL優化的方法有哪些”,在日常操作中,相信很多人在SQL優化的方法有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”SQL優化的方法有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

在應用系統開發初期,由于開發數據庫數據比較少,對于查詢SQL語句,復雜視圖的編寫等體會不到SQL語句各種語法等性能優劣,但是隨著互聯網大數據的興起,隨著數據庫中數據的增加,系統的響應速度就成為目前系統需要解決的最主要的問題之一。

系統優化中一個很重要的方面就是SQL語句的優化,對于海量數據,劣質SQL語句和優質SQL語句之間的速度差別可以達到上百倍,可見對于一個系統不是簡單地能實現功能就可,而是要寫出高質量的SQL語句,提高系統的可用性。

在多數情況下,Oracle使用索引來更快地遍歷表,優化器主要根據定義的索引提高性能。但是,如果在SQL語句的where子句中寫的SQL代碼不合理,就會造成優化器刪去索引而使用全表掃描,一般就這種SQL語句就是所謂的劣質SQL語句,在編寫SQL語句時,我們應清楚優化器根據何種原則來刪除索引,這有助于寫出高性能的SQL語句。我們要做到不但會寫SQL還要做到寫出性能優良的SQL。

常見優化規則:

一、表連接

-連接的表越多,性能越差

-可能的話,將連接拆分成若干個過程逐一執行

-優先執行可明顯減少數據量的連接,即可以降低復雜度,也能夠容易按照預期執行

-如果不可避免多表連接,很可能是設計缺陷

-外連接效果差,因為外連接必須對左右表進行表掃描

-盡量使用inner join查詢

二、使用臨時表

如果不可避免,可以考慮使用臨時表或表變量存放中間結果

三、少用子查詢

四、視圖嵌套

不要過深,一般視圖嵌套不要超過2個為宜。

SQL編寫注意事項:

1、null列使用索引沒有意義,任何包含null值的列都不會被包含在索引中,因此where語句中的is null 或is not null 的語句優化器是不允許使用索引的

2、concat或 || ,如果對列進行該函數操作,那么也會忽略索引的使用

3、like,通配符出現在首位,無法使用索引,反之可以

4、order by 子句中不要使用非索引列或嵌套表達式

5、not或!=無法使用索引,改用<,>

6、where與having,如果having中的過濾行為能夠在wehre中完成,則應該優先考慮where

7、exists替代in,not in四最低效的,因為要對子查詢的表進行全表掃描。可以考慮使用外連接或 not exists

8、索引,不要給不必要的字段增加索引,SQL語句盡量大寫,不要在索引上使用函數

9、>,>=時,推薦使用>=

10、使用union代替or

11、union和union all,union具有去重的操作,增加了計算時間,union all不需要去重,但會包含相同記錄。同樣功能下,首選union all操作。

到此,關于“SQL優化的方法有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

sql
AI

阿图什市| 林周县| 衡阳县| 广南县| 丰城市| 古交市| 额济纳旗| 谢通门县| 夏津县| 习水县| 潜山县| 会同县| 承德市| 阳江市| 黔江区| 丰台区| 营口市| 上饶县| 远安县| 永安市| 宝丰县| 亳州市| 吉首市| 南平市| 潜山县| 化隆| 涿鹿县| 开鲁县| 宁城县| 湟中县| 璧山县| 芦溪县| 合肥市| 丰宁| 邵阳市| 惠安县| 霍林郭勒市| 珠海市| 察哈| 靖宇县| 安陆市|