Topik ini menjelaskan metode dan hasil uji kinerja untuk pembaruan hotspot baris tunggal di ApsaraDB RDS for MySQL.
Anda dapat menggunakan Inventory Hint untuk meningkatkan kinerja pembaruan hotspot baris tunggal pada ApsaraDB RDS for MySQL. Untuk informasi selengkapnya, lihat Inventory Hint.
Lingkungan pengujian
Pengujian ini menggunakan dua instans ApsaraDB RDS for MySQL: satu instans Edisi Ketersediaan Tinggi dengan tipe instans rds.mysql.st.v52 dan satu instans Edisi Perusahaan dengan tipe instans mysql.st.12xlarge.25.
-
Versi instans: MySQL 5.7
-
Tipe instans: 90 core, 720 GB (dedicated host)
-
Edisi RDS: Edisi Ketersediaan Tinggi dan Edisi Perusahaan
-
Jenis penyimpanan: local disk
-
Template: template parameter high-performance
Data pengujian
Pengujian menggunakan satu tabel yang berisi 100 baris. Skema tabelnya adalah sebagai berikut:
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
Skrip pengujian
Skrip melakukan pembaruan konkuren pada baris dengan id=100:
UPDATE sbtest1 SET k=k+1 WHERE id=100
Pengujian menggunakan skrip Lua berikut:
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
Hasil pengujian
|
Tipe instans |
TPS maksimum baris tunggal |
|
RDS High-availability Edition |
12.000 |
|
RDS Enterprise Edition |
31.000 |
Gambar 1. Hasil pengujian untuk Edisi Perusahaan
OLTP test statistics:
queries performed:
read: 0
write: 1865967
other: 3731934
total: 5597901
transactions: 1865967 (30822.67 per sec.)
read/write requests: 1865967 (30822.67 per sec.)
other operations: 3731934 (61645.34 per sec.)
ignored errors: 0 (0.00 per sec.)
reconnects: 0 (0.00 per sec.)