MySQL優化(一) 哪些因素影響了資料庫效能

2021-07-26 09:14:35 字數 1795 閱讀 2555

所謂知己知彼,百戰不殆。既然要優化資料庫,我們就首先要知道,優化的是什麼,或者說:什麼因素影響了資料庫的效能。

影響資料庫因素主要因素總結如下:

以上因素並不是時時刻刻都會影響我們的資料庫效能,而就像木桶效應一樣:如果其中乙個因素嚴重影響效能,那麼整個資料庫效能就會嚴重受阻。另外,這些影響因素都是相對的,例如:當資料量並沒有達到百萬千萬這樣的級別,那麼sql查詢速度也許就不是個重要因素,換句話說,你的sql語句效率適當低下可能並不影響整個效率多少,反之,這種情況,無論如何怎麼優化sql語句,可能都沒有太明顯的效果。

因此,知道哪些影響因素會直接導致哪些現象產生,是至關重要的經驗,就像福爾摩斯一樣,通過現象看本質。接下來我們對不同的現象與影響因素做一一對應的總結。

什麼是qps:每秒鐘查詢量。如果每秒鐘能處理100條查詢sql語句,那麼qps就約等於100

什麼是tps:每秒鐘事務處理的數量。

在大促的情況下,訪問量暴增。這種情況下,sql語句的優化顯得最直接最有效。由於現在的mysql不支援多cpu併發運算,即每條sql只能由一條cpu執行。這也就意味著,如果我們想提高單挑sql的執行速度,無法通過增加cpu的方式達到效果。

大量的併發:資料庫連線數被佔滿

對於資料庫而言,所能建立的連線數是有限的,mysql中max_connections引數預設值是100。

超高的cpu使用率:因cpu資源耗盡而出現宕機使用更好的磁碟裝置解決。

調整計畫任務

如何避免無法連線資料庫的情況:

減少從伺服器的數量。從伺服器都要從主伺服器上覆制日誌,所以,從伺服器越多,網路流量越大。

進行分級快取。前方大量快取突然失效會對資料庫造成嚴重的衝擊。

避免使用「select * 」進行查詢

分離業務網路和伺服器網路

什麼樣的表可以稱為大表

很難在一定的時間內過濾出所需要的資料

建立索引需要很長的時間

風險:mysql版本<5.5建立索引會鎖表,>=5.5雖然不會鎖表但會引起主從延遲。

修改表結構需要很長時間鎖表

風險:會造成長時間的主從延遲;影響正常的資料操作

難點:

分庫分表需要消耗大量的人力物力,而且要冒著影響業務的風險,所以要慎重。

大表的歷史資料歸檔,可以減少對前後端業務的影響

難點:

乙個事務必須被視為乙個不可分割的最小工作單元。整個事務要麼全部提交成功,要麼全部失敗。
例如:銀行轉賬,我向你匯錢,要麼成功,我的賬戶減少1000元,你的賬戶增加1000元。要麼失敗,我不減,你也沒有增加。不能出現:我的賬戶減少1000,這時候斷電了,你沒收到。

事務將資料庫從一種一致性狀態轉換到另一種一致性狀態,在事務開始之前和事務結束之後資料庫中的資料的完整性沒有被破壞
例如:銀行轉賬,轉來轉去,總和應該保持不變。在我看開,一致性其實就是巨集觀上強調了一下原子性。只要原子性原則沒有被破壞,應該就總是一致的。

乙個事務對資料庫中的資料進行修改,在未提交完成前對其他事務是否可見的。隔離性有四種級別:

未提交讀(read uncommited)

已提交讀(read commited)

可重複讀(repeatable read)

序列化(serializable)

例如:銀行轉賬。比如你答應給你女朋友轉1000塊錢給她買粉。

一旦事務提交,則其所做的修改就會永久儲存到資料庫中。
執行時間比較長,運算元據比較多的事務

seo優化應該重要哪些因素?

演算法的不斷更新,帶給不少站長很多迷茫,那麼在seo優化當中,站長應該注意那幾個方面呢?1 心態 許多企業希望 優化能在短時間內看到效果,也在無形中給seoer壓力,導致它們容易浮躁 操之過急。企業如果想走 優化這條路,就要有打持久戰的準備。對於seoer來說,良好的心理素質必不可少。作弊手段只會讓...

哪些因素影響手機待機時間

手機待機時間是個複雜的問題,它同時受以下因素影響 1 電池當前的實際有效容量以及充電飽滿程度。2 手機固有的靜態待機功耗。3 sim卡的型別,不同型別和晶元工藝的sim卡的工作電流相差很遠,新型1 8v sim僅是5v sim卡的幾分之一。而sim卡在整機功耗中佔著相當大的比重。4 網路情況以及手機...

mysql優化之影響mysql效能因素一

mysql優化之影響mysql效能因素一 web伺服器可以進行橫向擴充套件,每台伺服器只要配置相同就可以進行橫向擴充套件,理論上可以無限制的增加web伺服器增加mysql的訪問效能。資料庫伺服器才是大資料量訪問時延遲高效率低的主要原因,沒有穩定的資料庫就沒有穩定的訪問。影響資料庫因素主要因素主要有一...