mysql資料庫中影響效能因素的解說(附資料庫架構案例)

不言
發布: 2018-09-17 17:50:28
原創
1343 人瀏覽過

這篇文章帶給大家的內容是關於mysql資料庫中影響效能因素的講解(附資料庫架構案例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

關於資料庫效能的故事

面試時多多少少會講到資料庫上的事情,“你對資料庫的掌握如何?”,什麼時候最考驗資料庫的效能,答應主要方面上講就是大數據量的讀寫時,而電商類的大促活動就是考驗各自的資料庫效能的時候啦。

對於web伺服器而言,資料量大時,我們可以簡單的透過橫向擴展來減少單一伺服器的負擔,但是對於資料庫伺服器來說就沒有那麼簡單了,他們不可能做到輕易的橫向擴展,這樣也違背了資料庫的完整性與一致性的原則,那麼我們的資料庫架構該如何搭建呢?

對於大促類活動而言,不管是產品多好、策劃多成功,如果沒有穩定的資料庫及伺服器環境,則這所謂的一切都將是一場空呀。

資料庫架構案例

mysql資料庫中影響效能因素的解說(附資料庫架構案例)

如圖所示,主從伺服器之間沒有任何主從複製元件,即當主伺服器出現了故障,很難進行主伺服器的切換,這需要DBA在從伺服器中選擇資料最新的從伺服器將其提升為主伺服器並同步其他從伺服器,這個過程的時間成本也是非常沉重的。

且過多的從伺服器,當業務量大時對主伺服器的網路卡也是一定的挑戰。

我們可以透過對叢集的監控資訊來了解是什麼影響了資料庫效能。

答應其實是肯定的,一般情況下主要是QPS與TPS、並發量(同一時間處理的請求的數量,避免和同時連接數混淆)、磁碟IO、讀取操作過於高

這裡有個建議:最好不要在主庫上資料備份,起碼在大型活動前要取消這類計畫、

影響資料庫的因素

sql查詢速度
伺服器硬體
網卡流量
磁碟IO

  • 超高的QPS和TPS

風險:效率底下的SQL( QPS:每秒鐘處理的查詢量)

  • 大量的並發和超高的CPU使用率

風險:大量的並發(資料庫連線數被佔滿(max_connections預設100))
風險:超高的CPU使用率(因CPU資源耗盡而出現宕機)

  • 磁碟IO

風險:磁碟IO效能突然下降(使用更快的磁碟裝置)
風險:其他大量消耗磁碟效能的排程任務(調整排程任務)

  • #網路卡流量

風險:網路卡IO被佔滿(1000Mb/8=100MB)

如何避免無法連接資料庫的情況:
1.減少從伺服器的數量
2、進行分級快取
3、避免使用「select * 」進行查詢
4、分離業務網路和伺服器網路

以上是mysql資料庫中影響效能因素的解說(附資料庫架構案例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!