tokudb-進銷存報表

情景 :進銷存報表的數據晚上的計劃任務沒有跑完(以往是凌晨1-3就能跑完),白天業務期間數據庫cpu出現性能瓶頸,定位是進銷存報表高併發的insert&select
 
針對相應的insert和select語句,能夠優化的方面:
數據庫這邊咱們排查了,發現兩個問題並給了兩個優化建議
1.單條insert插入,改爲批量插入,性能提高很是明顯; //減小commit的次數,從而減小insert時間
2.單條wahouseid和skuid查詢,改爲批量查詢) // 租戶的數據量自己會很大,一旦where條件的笛卡爾乘積過大,就會致使IO吃不消,cpu也會飆升

 

根本緣由:
1.表的數據量較大(超過2/3的表的數據量都超過100w)
2.數據表的數量:差很少650張分表
3.咱們對該庫的一半的數據作了engine=tokudb的修改
 
優劣體現:
tokudb引擎相比較於innnodb有比較好的壓縮比,insert速度能有相應的提高,可是select查詢會比較慢,須要修改一個參數
設置 loose_tokudb_buffer_pool_ratio 的比例,即 tokudb 佔用 tokudb 和 innodb 共用緩存的比例(根據庫中使用引擎的數據表的數量來比較)
 
分析總結:
tokudb雖然能節省很多的磁盤空間,可是後續若大批量的修改tokudb的引擎,須要修改該參數loose_tokudb_buffer_pool_ratio 並重啓數據庫。
相關文章
相關標籤/搜索