當前位置:
首頁 > 最新 > 什麼因素影響了資料庫的性能

什麼因素影響了資料庫的性能

資料庫好比人的大腦的記憶系統,沒有了資料庫就沒有了記憶系統。

它是長期儲存在計算機內、有組織的、可共享的數據集合。

可視為存儲電子文件的處所,用戶可以對文件中的數據進行新增、截取、更新、刪除等操作。

我們常說優化資料庫,到底是什麼因素影響了數據的性能呢?

影響資料庫性能主要因素:

1、商業需求對性能的影響,不合理需求造成資源投入產出比過低,可採用需求評審,欄位分析,設計評審。

2、系統架構(存儲架構)及實現對性能的影響,排查流水隊列數據、二進位多媒體數據、超大的文本數據、其它用戶上傳的文件、圖片等資源。

3、query語句對資料庫性能的影響,建議查詢過程和結果需共同關注。

1)查詢出的數據量過大,採用多次查詢、定位查詢、和查詢數據量控制。

2)鎖或者死鎖,排查代碼設計邏輯。

3)返回不必要的行和列,盡量查詢少的行和列,將數據遍歷時間降到最低。

4)查詢語句不夠優化,可採取在持久層或持久層之上做緩存,資料庫表的大欄位剝離,使用表的拆分,判斷磁碟上數據存放的內外磁軌獲取的效率,放棄關係資料庫的某些特性。

5)索引,是否使用了索引,索引類型是否合適。

6)隱式轉換,如數據格式不統一。

7)SQL是否全表掃描,查看執行計劃並修改查詢語句,減少全表掃描。

4、Schema設計對系統性能影響,考慮欄位選型、表列數、欄位冗餘、大小欄位拆分、單錶行數拆分。

5、硬體環境對資料庫的性能的影響,可根據系統特性及成本選擇更適合的硬體設備。

1)I/O吞吐量小,形成了瓶頸效應 I/O吞吐量是影響數據訪問速度的客觀因素(硬體因素)。

2)內存不足,可採取分而治之/hash映射 + hash統計 + 堆/快速/歸併排序、雙層桶劃分、Bloomfilter/Bitmap、Trie樹/資料庫/倒排索引、外排序、分散式處理之Hadoop/Mapreduce,或者擴容。

6、系統環境,如OS、DB版本、參數配置。

7、系統規模,評估並發量、數據量、用戶量。

8、代碼設計,減少使用OR、LIKE等語句寫法、過多表關聯、表結構、過度範式。

9、業務模型及架構,如單伺服器支撐、OLTP&OLAP混合。

10、阻塞,等待,如資料庫連接池佔滿、資料庫內部運行。

11、參數嗅探,使用本地變數,使用EXEC執行動態SQL,這樣會重編譯,存儲過程使用Recompile,使用QUERY HINT指定執行計劃等。

12、執行計劃突變,減少動態sql的使用,或固化sql。

13、超高的QPS和TPS,可參考分散式資料庫,或者運用NoSQL技術如:MongoDB,Hbase,TiDB等,合適的庫存儲最合適的數據類型。

14、大表,採取分庫分表、歷史數據歸檔、避免一次處理太多的數據,分批分時間段執行。

15、網卡流量,減少從伺服器的數量、進行分級緩存、避免使用「select * 」進行查詢、分離業務網路和伺服器網路。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 創保網IT技術開發匯 的精彩文章:

TAG:創保網IT技術開發匯 |