色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

寫入mysql數據庫的數據量很大

洪振霞2年前38瀏覽0評論
寫入mysql數據庫的數據量很大?

數據庫的寫入量高,是一個很常見的技術瓶頸,場景如央視春晚發紅包,千萬級別的寫入qps。而解決方案有很多,筆者分享一些目前業界最成熟有效的措施:

一、分表

將數據分攤到多個表上,流量也將分攤到多個表上,可以提高數據庫讀寫的吞吐量。

如將一個表從1個,分解為256個。

二、緩存

我們可以將數據庫中的熱點數據,寫入緩存中,將讀請求的流量優先走緩存,這樣可以分攤數據庫的讀壓力。

如使用Redis來存儲熱點數據,而使用Canal將MySQL中的熱點數據同步到Redis中。

三、異步

我們知道,MySQL數據庫日志系統,有一個持久化日志redolog,原理是數據庫為了減少磁盤IO的次數,將要寫入數據庫的數據先在內存中暫存,后續再批量寫入磁盤中,這邊是異步的一種案例。

我們的系統設計,也可以參考這個模式,將要寫入數據庫中的操作通過發送mq暫存到Kafka中,再通過消費mq的方式,將數據寫入數據庫,從而避免流量過大,一下子將數據庫打死了。

四、分庫

經過壓測得知,一個16核32G內存500G硬盤的MySQL,它的寫入極限是5600/s,這是硬件上的極限,從軟件層面已無法提升。

如使用MyCat就是構建數據庫集群,以增加更多的數據庫實例,從硬件層面上解決問題。

五、其他

以上是互聯網大廠最常用的優化方案,只要你肯花心思,總有優化的空間。