mysql資料庫效能優化實踐(分割槽)

2021-07-10 15:51:06 字數 1115 閱讀 2136

最近由於工作需要,需要對資料庫的效能進行測試,在這裡同步下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,那麼所有的語句一定是...