影響mysql效能的因素都有哪些
一些開發筆記: https://github.com/stayfoo/stayfoo-hub
影響資料庫效能的因素
- 影響資料庫效能的因素
- sql 查詢速度
- 伺服器硬體
- 網路卡流量
- 磁碟 IO
- 網路卡流量
- 大表
- 大事務
QPS & TPS
QPS:每秒鐘處理的查詢量
- eg:
- 一個 cpu 10ms 處理 1 個 sql,
- 1s 處理 100 個 sql,那麼 QPS<=100
- 一個 cpu 100ms 處理 1 個 sql,QPS<=10
TPS:
- 超高的 QPS 和 TPS 帶來的風險:效率低下的 SQL
資料庫的效能問題大部分都是由於 sql 的慢查詢造成的,大部分問題可以通過對 sql 的優化得到解決。
併發量 & CPU 使用率
併發量:同一時間處理的請求的數量;與同時連線數不同。
空閒的百分比值越高空閒率越高。
- 大量的併發和超高的 CPU 使用率
大量的併發:資料庫連線數被佔滿。(max_connections 預設 100)
超高的 CPU 使用率:因 cpu 資源耗盡而出現當機。
磁碟 IO
資料庫備份遠端同步計劃任務會導致 IO 達到峰值。
- 最好不要在主庫上資料庫備份
- 大型活動前取消這類計劃
風險:
磁碟 IO 效能突然下降(使用更快的磁碟裝置)
其他大量消耗磁碟效能的計劃任務(調整計劃任務,做好磁碟維護)
- 資料庫擴充套件需要完整性和一致性
網路卡流量
網路卡 IO 被佔滿(1000Mb/8 約等於 100MB)
- 如何避免無法連線資料庫的情況:
- 減少從伺服器的數量
- 進行分級快取
- 避免使用 select * 進行查詢
- 分離業務網路和伺服器網路
大表
- 記錄行數巨大,單標超過千萬行
表資料檔案巨大,表資料檔案超過 10G
-
第一、 大表對查詢的影響:
- 慢查詢:很難再一定的時間內過濾出所需要的資料。
- 查詢的維度區分度比較低(只有幾個維度,例如三方登入欄位:只有微信、qq 幾個有限的維度,查詢的資料量就比較大),會產生大量磁碟 IO,降低磁碟效率。
-
第二、大表對 DDL 操作的影響:
- 建立索引需要很長的時間
- Mysql 版本 < 5.5 建立索引會鎖表
- Mysql 版本 >= 5.5 雖然不會鎖表,但會引起主從延遲
- 大表對 DDL 操作的影響:修改表結構需要長時間鎖表。
- 風險:會造成長時間的主從延遲。影響正常的資料操作。
-
如何處理資料庫中的大表:
- 1. 分庫分表把一張大表分成多個小表。
- 難點:
- 分表主鍵的選擇;分表後跨分割槽資料的查詢和統計。
- 2. 大表的歷史資料歸檔:
- 減少對前後端業務的影響
- 難點:歸檔時間點的選擇。如何進行歸檔操作。
- 1. 分庫分表把一張大表分成多個小表。
大事務
- 什麼是事務?
- 事務是資料庫系統區別於其他一切檔案系統的重要特徵之一
- 事務是一組具有原子性的 sql 語句,或是一個獨立的工作單元
特點:原子性、一致性、隔離性、永續性
-
事務原子性 atomicity:
- 一個事務被視為一個不可分割的最小工作單元,整個事務中的所有操作要麼全部提交成功,要麼全部失敗回滾,對於一個事務來說,不可能只執行其中的一部分操作
- 銀行例子:1. 取錢 2.存錢
-
事務的一致性 consistency:
- 一致性是指事務將資料庫從一種一致性狀態轉換到另外一種一致性狀態,在事務開始之前和事務結束後資料庫中資料的完整性沒有被破壞
-
事務的隔離性 isolation:
- 隔離性要求一個事務對資料庫中資料的修改,在未提交完成前對於其它事務是不可見的
- SQL 標準中定義的四種隔離級別:
- 未提交讀(READ uncommited)
- 已提交讀(READ commited)(不可重複讀)
- 可重複讀(repeatable READ)
- 可序列化(serializable)
- 隔離性由低->高,併發性由高->低
-
事務的永續性 durability:
- 一旦事務提交,則其所做的修改就會永久儲存到資料庫中。此時即使系統崩潰,已經提交的修改資料也不會丟失
-
大事務:
- 執行時間比較長,操作的資料比較多的事務
- 風險:
- 鎖定太多的資料,造成大量的阻塞和鎖超時
- 回滾時所需時間比較長
- 執行時間長,容易造成主從延遲
-
如何處理大事務:
- 避免一次處理太多的資料
- 移除不必要在事務中的 select 操作
更多原創文章乾貨分享,請關注公眾號
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- 影響MySQL效能的硬體因素MySql
- 影響儲存網路效能的因素有哪些?
- 影響移動網站排名的重要因素都有哪些呢?網站
- 影響HTTP效能的常見因素HTTP
- 影響雲伺服器效能的主要因素有哪些?伺服器
- PING使用方法及其影響因素有哪些
- 影響Oracle標量子查詢效能的三個因素Oracle
- 影響網路速度的重要因素有哪些
- 影響精益生產成功落地的因素有哪些?
- 影響網站排名上升的因素主要有哪些?網站
- 常見的影響伺服器安全的因素有哪些?伺服器
- 影響MySQL效能的硬體因MySql
- 伺服器穩定性受到哪些因素影響伺服器
- 影響資料分析師薪資水平的因素有哪些?
- 影響服裝ERP系統推廣的因素有哪些?
- 影響六西格瑪專案的政治因素有哪些?
- 影響教育網站原始碼價格的因素有哪些網站原始碼
- 香港伺服器ping值受哪些因素影響伺服器
- SF伺服器多少錢?影響因素有哪些?-VeCloud伺服器Cloud
- 影響線上教育app原始碼價格的因素有哪些?APP原始碼
- 哪些因素會影響伺服器機櫃的正常工作伺服器
- 影響106簡訊平臺收費高低的因素有哪些?
- 伺服器的連線速度有哪些因素影響呢伺服器
- 【知識分享】影響伺服器穩定性的因素有哪些伺服器
- 【注意啦】影響網路安全的主要因素有哪些?
- 網站的建設質量受哪些因素所影響網站
- Java教程:影響MySQL效能的配置引數JavaMySql
- 有哪些因素會影響美國伺服器速度伺服器
- 影響工業網路交換機排名因素有哪些?
- 影響伺服器租用處理能力強弱的因素有哪些?伺服器
- 利聯科技:影響直播行業的伺服器因素有哪些?行業伺服器
- 影響測試進度因素
- 新版Redis不再“開源”,對使用者都有哪些影響?Redis
- 影響rest api版本選擇的因素RESTAPI
- MySQL null值儲存,null效能影響MySqlNull
- 伺服器SSL證書價格受到哪些因素影響?伺服器
- Python為什麼執行效率低?受哪些因素影響?Python
- MySQL影響伺服器效能的幾個方面MySql伺服器