米利唐_后腰_乌克兰足球超级联赛_中国竞彩欧赔 - 足球竞彩分析

集團官網
  • 國家級全民數字素養與技能培訓基地
  • 河南省第一批產教融合型企業建設培育單位
  • 鄭州市數字技能人才(碼農)培養評價聯盟

怎樣優化數據庫?提高數據庫的性能?

編輯:云和數據 日期:2023-02-25 17:50

1.對語句的優化

①用程序中,保證在實現功能的基礎上,盡量減少對數據庫的訪問次數;通過搜索參數,盡量減少對表的訪問行數,最小化結果集,從而減輕網絡負擔;

②能夠分開的操作盡量分開處理,提高每次的響應速度;在數據窗口使用 SQL 時,盡量把使用的索引放在選擇的首列;算法的結構盡量簡單;

③在查詢時,不要過多地使用通配符如 SELECT * FROM T1 語句,要用到幾列就選擇幾列如:SELECT COL1,COL2FROM T1;

④在可能的情況下盡量限制盡量結果集行數如:SELECT TOP 300 COL1,COL2,COL3 FROMT1,因為某些情況下用戶是不需要那么多的數據的。

⑤不要在應用中使用數據庫游標,游標是非常有用的工具,但比使用常規的、面向集的 SQL 語句需要更大的開銷;按照特定順序提取數據的查找。

2. 避免使用不兼容的數據類型

例如 float 和 int、char 和 varchar、binary 和 varbinary 是不兼容的。數據類型的不兼容可能使優化器無法執行一些本來可以進行的優化操作。

例如:

SELECT name FROM employee WHERE salary > 60000

在這條語句中,如 salary 字段是 money 型的,則優化器很難對其進行優化,因為 60000 是個整型數。我們應當在編程時將整型轉化成為錢幣型,而不要等到運行時轉化。若在查詢時強制轉換,查詢速度會明顯減慢。

3.避免在 WHERE 子句中對字段進行函數或表達式操作。若進行函數或表達式操作,將導致引擎放棄使用索引而進行全表掃描。

4.避免使用!=或<>、IS NULL 或 IS NOT NULL、IN ,NOT IN 等這樣的操作符

5.盡量使用數字型字段

6.合理使用 EXISTS,NOT EXISTS 子句。

7.盡量避免在索引過的字符數據中,使用非打頭字母搜索。

8.分利用連接條件

9.消除對大型表行數據的順序存取

10. 避免困難的正規表達式

11. 使用視圖加速查詢

12. 能夠用 BETWEEN 的就不要用 IN

13. DISTINCT 的就不用 GROUP BY

14. 部分利用索引

15. 能用 UNION ALL 就不要用 UNION

16. 不要寫一些不做任何事的查詢

17. 盡量不要用 SELECT INTO 語句

18. 必要時強制查詢優化器使用某個索引

19. 雖然 UPDATE、DELETE 語句的寫法基本固定,但是還是對 UPDATE 語句給點建議:

a) 盡量不要修改主鍵字段。

b) 當修改 VARCHAR 型字段時,盡量使用相同長度內容的值代替。

c) 盡量最小化對于含有 UPDATE 觸發器的表的 UPDATE 操作。

d) 避免 UPDATE 將要復制到其他數據庫的列。

e) 避免 UPDATE 建有很多索引的列。

f) 避免 UPDATE 在 WHERE 子句條件中的列

相關內容

搶先一步 鴻蒙(HarmonyOS)應用開發者高級認證 免費考! 適合人群計算機相關專業在校生(技師、中職、高職、本科、研究生)對鴻蒙(HarmonyOS)有興趣的非計算機相關專業在校生目前正在從事移動應用的開發者目前正在從事計算機行業相關的人計算機專業高校老師所有對鴻蒙(HarmonyOS)有興趣的人 培訓方案掌握鴻蒙的核心概念和端云一體化開發、... 什么是Java的多態性(polymorphism)?它有哪些不同的形式? 多態性是Java面向對象編程的一個重要概念,它允許不同的對象以一致的方式響應同一個方法調用,具體表現為對象在運行時可以表現出多個不同的形態。多態性主要有兩種不同的形式:編譯時多態性(靜態多態性)和運行時多態性(動態多態性)。1. 編譯時多態性(靜態多態性):   ... 如何學習和搭建Hadoop開發環境? Hadoop是大數據處理領域的重要平臺,能夠處理和分析大量數據。為了有效地利用Hadoop,我們需要學習其基礎知識,并正確搭建開發環境。下面是詳細的學習和搭建指南。一、學習Hadoop基礎掌握基礎概念和原理Hadoop主要由HDFS和MapReduce兩部分組成。HDFS是分布式文件系統,Ma... UI 設計學習如何進階成為高手 我總結了六種方法,幫助你走出舒適區,提高技能,成長為自信且經驗豐富的UI設計高手一位經驗豐富的 UI 設計師,往往十分看中應用程序界面的吸引力和視覺刺激,確保滿足用戶期望和需求。但是,如果你已經在 UI 設計圈摸爬滾打多年,仍然沒有出色的作品,那你極有可能是因為陷入了一個舒適圈,UI技能一直原... 在Java中Executor和Executors的區別? 在Java中,Executor和Executors都與線程池和并發執行有關,但它們是不同的概念和類。1.ExecutorExecutor是一個接口,位于java.util.concurrent包中,用于表示一個執行任務的執行器。它只定義了一個方法:void execute(Runnable c... String類型的常見命令有哪些? String類型,也就是字符串類型,是Redis中最簡單的存儲類型。其value是字符串,不過根據字符串的格式不同,又可以分為3類:string是普通字符串,int整數類型,可以做自增、自減操作,float浮點類型,可以做自增、自減操作。String的常見命令有:SET:添加或者修改已經存在的...