面試時多多少少會講到資料庫上的事情,「你對資料庫的掌握如何?」,什麼時候最考驗資料庫的效能,答應主要方面上講就是大資料量的讀寫時,而電商類的大促活動就是考驗各自的資料庫效能的時候啦。
對於web伺服器而言,資料量大時,我們可以簡單的通過橫向擴充套件來減少單個伺服器的負擔,但是對於資料庫伺服器來說就沒有那麼簡單了,他們不可能做到輕易的橫向擴充套件,這樣也違背了資料庫的完整性與一致性的原則,那麼我們的資料庫架構該如何搭建呢?
對於大促類活動而言,不管是產品多好、策劃多成功,如果沒有穩定的資料庫及伺服器環境,則這所謂的一切都將是一場空呀。
如圖所示,主從伺服器之間沒有任何主從複製元件,即當主伺服器出現了故障,很難進行主伺服器的切換,這需要dba在從伺服器中選擇資料最新的從伺服器將其提公升為主伺服器並同步其他從伺服器,這個過程的時間成本也是非常沉重的。
且過多的從伺服器,當業務量大時對主伺服器的網絡卡也是一定的挑戰。
我們可以通過對集群的監控資訊來了解是什麼影響了資料庫效能。
答應其實是肯定的,一般情況下主要是qps與tps、併發量(同一時間處理的請求的數量,避免和同時連線數混淆)、磁碟io、讀操作過於高
這裡有個建議:最好不要在主庫上資料備份,起碼在大型活動前要取消這類計畫、
sql查詢速度
伺服器硬體
網絡卡流量
磁碟io
風險:效率底下的sql(qps:每秒鐘處理的查詢量)
風險:大量的併發(資料庫連線數被佔滿(max_connections預設100))風險:超高的cpu使用率(因cpu資源耗盡而出現宕機)
風險:磁碟io效能突然下降(使用更快的磁碟裝置)風險:其他大量消耗磁碟效能的計畫任務(調整計畫任務)
風險:網絡卡io被佔滿(1000mb/8=100mb)如何避免無法連線資料庫的情況:
1、減少從伺服器的數量
2、進行分級快取
3、避免使用「select * 」進行查詢
4、分離業務網路和伺服器網路
關於mySQL資料庫的效能優化
1 wait timeout時間設定 連線數是直接反應資料庫效能好壞的關鍵指標,連線數過多,很可能有多種原因,比如,被一條sql查詢給堵了,造成後面的dml操作等待,又比如,增,刪,改,查操作很頻繁,磁碟io遇到了瓶頸,導致無法處理繁忙的請求,也許有人說增大max connections值就行了吧,...
mysql資料庫效能資料 MYSQL資料庫效能優化
1.選取最適用的字段屬性 表中字段的寬度設得盡可能小 char 的上限為 255 位元組 固定占用空間 varchar 的上限 65535 位元組 實際占用空間 text 的上限為 65535。盡量把字段設定為 not null,執行查詢的時候,資料庫不用去比較 null 值。2.使用連線 join...
關於Mysql資料庫效能分析點
關於mysql資料庫效能分析點 mysql中innodb flush log at trx commit和sync binlog 兩個引數是控制mysql 磁碟寫入策略以及資料安全性的關鍵引數。mysql的binlog是邏輯日誌,其記錄是對應的sql語句,記錄了所有的ddl和dml語句 除了資料查詢...