测试分为两个步骤:
- 简单手工测试
- 脚本自动化测试
手工测试
在另一个公有网络中(非数据库集群网络),通过MySQL客户端,连接上TiDB集群进行测试。 主要测试基本命令的可用性。
-
列出数据库 使用
SHOW DATABASES
命令查询,花费0.01s -
创建与删除数据库 手工进行了三次数据库的创建与删除,时间分别为:
第x次 | 创建时间 | 删除时间 |
---|---|---|
1 | 10.03s | 10.02s |
2 | 10.02s | 10.01s |
3 | 10.03s | 10.02s |
-
创建与删除表 创建表语句如下:
CREATE TABLE world (id int NOT NULL AUTO_INCREMENT, name VARCHAR(20), age INT DEFAULT 0, PRIMARY KEY(id));
花费时间10.04s
-
插入数据测试 插入数据SQL语句如下:
INSERT INTO world (name, age) VALUES ("Hello", 10);
手工进行了5次插入,成功时间分别为:0.02s, 0.01s, 0.02s, 0.01s, 0.01s
-
查找数据测试 查找数据SQL语句如下:
SELECT * FROM world;
手工测试查询10次,成功时间都不超过 0.01s
-
更新数据测试 更新数据SQL语句如下:
UPDATE world SET age = 20 WHERE id = 1;
手工测试更新10次,成功时间都不超过 0.01s
-
删除数据测试 删除数据SQL语句如下:
DELETE FROM world WHERE id = 1;
手工测试删除10次,共花费时间 0.12s
手工测试后的一些疑问
- FLUSH PRIVILEGES 不可用
- 如何进行设置,如时区与字符集设置
脚本测试
自动化测试工具采用的是PingCAP自己做的一个数据库测试工具。
SELECT 测试
-
默认参数(rows: 10000, pool: 100, concurrent worker: 50, times: 10000)
结果:elapse : 40.781883s tps:245.206924 -
自定义参数(rows: 100000, pool: 100, concurrent worker: 100, times: 100000)
结果:elapse : 97.996369s tps:1020.445969
UPDATE 测试
-
默认参数(rows: 10000, pool: 100, concurrent worker: 50, times: 10000)
结果:elapse : 56.146370s tps:178.105905 -
自定义参数(rows: 100000, pool: 100, concurrent worker: 100, times: 100000)
结果:elapse : 83.560040s tps:1196.744286
DELETE测试
-
默认参数(rows: 10000, pool: 100, concurrent worker: 50, times: 10000)
结果:elapse : 57.983487s tps:172.462895 -
自定义参数(rows: 100000, pool: 100, concurrent worker: 100, times: 100000)
结果:elapse : 94.524175s tps:1057.930421
PS: 吐槽一下OSC的Markdown渲染,太烂了...