本文介紹RDS MySQL 8.0及RDS MySQL 5.7版本高可用系列在開啟全密態(tài)功能后OLTP負載性能測試。
背景信息
此次測試對比了兩種查詢情況下的數據庫性能(以QPS、RT為準)。
明文查詢:不設置任何加密規(guī)則。
密文查詢:對數據庫中所有列進行加密。
全密態(tài)對數據庫寫入無性能影響。
實例規(guī)格和測試方法
此次測試采用行業(yè)標準壓測工具--SysBench,分別針對只讀(oltp_read_only)、讀寫(oltp_read_write)兩個基準,在不同的線程數下模擬數據庫不同壓力時的性能表現。
實例配置:
實例規(guī)格:mysql.n2.xlarge.2c
實例規(guī)格族:通用型
實例系列:高可用系列
實例存儲類型:ESSD PL1 云盤
版本:RDS MySQL 8.0 20240229,RDS MySQL 5.7 20240229
測試參數:
單表數據量:25000
表數量:250
測試結果
RDS MySQL 5.7
只讀
線程 | 明文QPS | 密文QPS | 明文RT | 密文RT |
64 | 14332.58 | 14021.94 | 71.43 | 73.01 |
128 | 28712.27 | 28097.95 | 71.32 | 72.87 |
256 | 51173.18 | 43663.67 | 80.02 | 93.79 |
讀寫
線程 | 明文QPS | 密文QPS | 明文RT | 密文RT |
64 | 14349.46 | 14073.52 | 89.18 | 90.93 |
128 | 28745.73 | 28480.96 | 89.03 | 89.86 |
256 | 52388.17 | 47524.69 | 97.69 | 107.69 |
RDS MySQL 8.0
只讀
在不同數量線程下,Sysbench只讀測試結果如下:
線程 | 明文QPS | 密文QPS | 明文RT | 密文RT |
64 | 20957.01 | 20451.69 | 48.85 | 50.06 |
128 | 40395 | 40523.26 | 50.68 | 50.52 |
256 | 67328.31 | 53119.03 | 60.8 | 77.07 |
讀寫
在不同數量線程下,Sysbench讀寫測試結果如下:
線程 | 明文QPS | 密文QPS | 明文RT | 密文RT |
64 | 20201.55 | 19942.42 | 63.35 | 64.17 |
128 | 40133.36 | 40343.33 | 63.76 | 63.43 |
256 | 62039.77 | 46675.26 | 82.46 | 109.59 |
相關說明
此次測試對所有查詢后的數據內容均進行了加密。在客戶業(yè)務系統中,如果只是針對少數敏感字段加密,性能會優(yōu)于此次測試的結果。
全密態(tài)功能只影響數據庫讀操作的效率。因此,只讀場景是全密態(tài)性能測試結果較差的場景;讀寫場景相對全密態(tài)性能影響較小;只寫場景下,全密態(tài)則完全不造成性能影響。
全密態(tài)功能本身基本只對CPU有額外的負載,對磁盤、內存沒有壓力。