最近由於工作需要,需要對資料庫的效能進行測試,在這裡同步下mysql的效能測試結果。
一、業務場景
表中存放的資料為訂單資訊資料,目前有3百萬資料,最初建表時只對查詢的字段建索引,當表資料量達到200w時,明顯查詢速度變慢,select一次需要2s,很明顯達不到效能要求。
二、mysql資料庫效能測試
資料庫機器型號,ucloud標準機型,記憶體1.5g
單位:微秒
訂單資料 訂單商品資料 兩表left join
1w資料: <10 <10 <10
10w資料 <200 <210 <200
50w資料 <4000 <5000 <6000
100w資料 <8000 <11000 <9000
200w資料 <18000 <23000 <18000
二、如何實施
1、考慮使用分割槽+分資料庫的方式,目前**單錶最多容納1000w資料;
2、分割槽個數的選擇,測試分100個區跟500個區的效果;分割槽方式的選擇:hash分割槽
結果如下:通過結果可以發現在1000w資料的情況下,分500個區的查詢效果比分100個好
3、對訂單資料表跟訂單商品資料表分別分500個區,目前只有300w資料
對索引字段查詢,以及hash欄位,10微秒一下有返回結果;
分割槽之後,兩個表left join 效果不好,於是採取單個表查詢,獲得結果後再查另乙個表,可以做到秒回效果。
效能優化 MySQL資料庫優化
可以從哪幾個方面進行資料庫的優化?如下圖所示 a sql及索引優化 根據需求寫出良好的sql,並建立有效的索引,實現某一種需求可以多種寫法,這時候我們就要選擇一種效率最高的寫法。這個時候就要了解sql優化 b 資料庫表結構優化 根據資料庫的正規化,設計表結構,表結構設計的好直接關係到寫sql語句。c...
資料庫效能優化 MySQL
序 即使有較長的快取有效期和較理想的快取命中率,但是快取的建立和快取過期後的重建都是需要訪問資料庫的。對資料庫寫操作不是很容易引入快取策略。11.1 檢視資料庫狀態 可以通過show status show innodb status 來檢視mysql資料庫的狀態,使用mysqlreport這個第三...
效能優化 mysql資料庫
一 mysql常用命令 1.開啟日誌 1 show global variables like genera 2 set global general log on 3 set global general log off 2.mysql如果開了set autocommit 0,那麼所有的語句一定是...