全部產品
Search
文件中心

:單行熱點更新測試

更新時間:Apr 29, 2025

本文介紹雲資料庫RDS MySQL單行熱點更新的效能測試方法和結果。

結合Inventory Hint,可提升雲資料庫RDS MySQL的單行熱點更新效能。Inventory Hint的詳細資料,請參見Inventory Hint

測試環境

本樣本中,分別使用兩個執行個體進行測試(高可用系列和三節點企業系列),規格碼為rds.mysql.st.v52和mysql.st.12xlarge.25。

  • 執行個體版本:MySQL 5.7

  • 執行個體規格:90核 720GB(獨佔物理機型)

  • 執行個體系列:高可用系列和三節點企業系列

  • 執行個體儲存類型:高效能本地碟

  • 執行個體模板:高績效參數模板

測試資料

測試資料為單表,表內100行記錄。表結構如下:

CREATE TABLE `sbtest1`
(
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT
,`k` INT(10) UNSIGNED NOT NULL DEFAULT '0'
,`c` CHAR(120) NOT NULL DEFAULT ''
,`pad` CHAR(60) NOT NULL DEFAULT ''
,PRIMARY KEY (`id`)
,KEY `k_1` (`k`)
)
ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT
CHARSET=utf8 MAX_ROWS=1000000

測試指令碼

對id=100的記錄進行並發更新,SQL如下:

UPDATE sbtest1 SET k=k+1 WHERE id=100

測試的Lua指令碼如下:

pathtest = string.match(test,"(.*/)")
if pathtest then
 dofile(pathtest .."common.lua")
else
 require("common")
end
function thread_init(thread_id)
 set_vars()
end
function event(thread_id)
 local table_name
 table_name ="sbtest".. sb_rand_uniform(1, oltp_tables_count)
 rs = db_query("begin")
 rs = db_query("update /*+commit_on_success rollback_on_fail target_affect_row(1) */ sbtest1 SET k=k+1 WHERE id=100")
 rs =db_query("commit")
end

測試結果

執行個體類型

單行記錄更新峰值(TPS)

RDS高可用系列

1.2萬

RDS三節點企業系列

3.1萬

圖 1. 三節點企業系列測試結果三節點企業版測試結果