單行熱點(diǎn)更新測(cè)試
更新時(shí)間:
本文介紹云數(shù)據(jù)庫(kù)RDS MySQL單行熱點(diǎn)更新的性能測(cè)試方法和結(jié)果。
結(jié)合Inventory Hint,可提升云數(shù)據(jù)庫(kù)RDS MySQL的單行熱點(diǎn)更新性能。Inventory Hint的詳細(xì)信息,請(qǐng)參見Inventory Hint。
測(cè)試環(huán)境
本示例中,使用高可用系列實(shí)例進(jìn)行測(cè)試,規(guī)格碼為rds.mysql.st.v52。
實(shí)例版本:MySQL 5.7
實(shí)例規(guī)格:90核 720GB(獨(dú)占物理機(jī)型)
實(shí)例系列:高可用系列
實(shí)例存儲(chǔ)類型:本地盤
實(shí)例模板:高性能參數(shù)模板
測(cè)試數(shù)據(jù)
測(cè)試數(shù)據(jù)為單表,表內(nèi)100行記錄。表結(jié)構(gòu)如下:
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
測(cè)試腳本
對(duì)id=100的記錄進(jìn)行并發(fā)更新,SQL如下:
UPDATE sbtest1 SET k=k+1 WHERE id=100
測(cè)試的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
測(cè)試結(jié)果
實(shí)例類型 | 單行記錄更新峰值(TPS) |
RDS高可用系列 | 1.2萬(wàn) |
文檔內(nèi)容是否對(duì)您有幫助?