一、环境准备
测试的数据库包括MySQL集群版本、Greenplum集群版本。
1.硬件环境:
集群版 | |
---|---|
操作系统: | CentOS Linux release 7.5.1804 (3台) |
内存大小: | 16G |
磁盘大小: | 500G |
CPU型号: | 8核(Intel® Xeon® CPU E5-2670 0 @ 2.60GHz) |
2.软件环境:
数据库 | 软件版本 | 节点 |
---|---|---|
mysql集群 | mysql-5.7 | 一主两从 读写分离 |
gp集群 | greenplum-db-6.0.13-rhel7-x86_64.rpm | master主机不存放数据,两个sdw各两个节点一共四个segment(主节点+镜像节点) |
二、测试结果
1.查询测试
数据库 | count(*)500万 | count(*)2400万 | count(*)3500万 | 导出2400万 | 导入8000万 | 导出8000万 |
---|---|---|---|---|---|---|
gp集群 | 2s/3s | 10s/6s/4s/5s | 8s | 2分15秒 5分40秒 5分02秒 8分18s | 1 | 1 |
数据库 | mysql集群插入状态下 (900w) | mysql集群 (1900w) | gp 集群 (4080w) | gp 集群开启orca(4080w) |
---|---|---|---|---|
SELECT count(*) from company_ar ; | 6s | 8.385s / 8.377s | 17s | 17s |
SELECT * FROM company_ar where id=999; | 0.5s | 0.005s / 0.001s | 5.8s | 0.009s / 0.009s |
SELECT * FROM company_ar WHERE faren LIKE ‘有%’; | 61s / 超过3m | 45.692s / 44.66s | 20s /15s/7s | 7.469s / 6.15s |
SELECT * FROM company_ar WHERE faren LIKE ‘%哲%’; | 超过5m | 44.553s/45.047s | 10s /8s/7s | 7.759s / 7.914s |
SELECT * FROM company_ar WHERE faren IN (‘干义’,‘呼子’); | 超过5m | 43.96s/43.873s | 6s/8s/12s | 5.975s / 6.55s |
SELECT * FROM company_ar WHERE (id BETWEEN 1000 AND 1100) AND faren NOT IN (‘人富’, ‘归咏’); | 0.9s | 0.005s / 0.005s | 30s/22s/18s | 0.028s / 0.026s |
SELECT * FROM company_ar WHERE (id BETWEEN 1100 AND 1300) AND “EUSST” NOT IN (‘吊销’, ‘迁出’); | 6s/3s/0.9s | 0.009s / 0.01s | 24s/15s/20s | 0.026s / 0.027s |
测试3.1版本
数据库 | mysql集群 (5000w) | gp 集群 (10277w) | gp 集群开启orca(10277w) |
---|---|---|---|
SELECT count(*) from company_ar ; | 120.192s | ||
SELECT * FROM company_ar where id=999; | 0.036s | ||
SELECT * FROM company_ar WHERE faren LIKE ‘有%’; | 7712.284s | ||
SELECT * FROM company_ar WHERE faren LIKE ‘%哲%’; | |||
SELECT * FROM company_ar WHERE faren IN (‘干义’,‘呼子’); | |||
SELECT * FROM company_ar WHERE (id BETWEEN 1000 AND 1100) AND faren NOT IN (‘人富’, ‘归咏’); | 1.302s | ||
SELECT * FROM company_ar WHERE (id BETWEEN 1100 AND 1300) AND “EUSST” NOT IN (‘吊销’, ‘迁出’); | 3.301s |
2.测试工具测试
Sysbench—mysql测压工具
下载指令:yum install -y sysbench 使用说明
1.单一测试
测试说明:准备一个一万数据的表,测试不同脚本下性能的对比
测试脚本 | 数据库 | 读总数 | 写总数 | 每秒事务数 | 每秒读写次数 | 最小耗时 | 平均耗时 | 最长耗时 | 超过95%平均耗时 |
---|---|---|---|---|---|---|---|---|---|
read | write | tps / per sec. | qps / per sec. | min / ms | avg / ms | max / ms | 95th percentile / ms | ||
oltp_delete | mysql | 0 | 98 | 23.71 | 23.71 | 0.41 | 42.14 | 460.73 | 219.36 |
gp | 0 | 176 | 91.72 | 97.72 | 2.37 | 10.98 | 382.73 | 40.37 | |
oltp_insert | mysql | 0 | 77 | 7.52 | 7.52 | 23.73 | 132.87 | 649.89 | 404.61 |
gp | 0 | 35 | 3.38 | 3.38 | 105.33 | 295.83 | 664.66 | 539.71 | |
oltp_point_select | mysql | 17280 | 0 | 1726.92 | 1726.92 | 0.38 | 0.58 | 408.56 | 0.54 |
gp | 1934 | 0 | 193.22 | 193.22 | 4.21 | 5.17 | 63.37 | 7.43 | |
oltp_read_only | mysql | 12614 | 0 | 89.94 | 1439.11 | 7.8. | 11.10 | 388.92 | 11.24 |
gp | 714 | 0 | 5.08 | 81.35 | 106.04 | 196.52 | 467.65 | 397.39 | |
oltp_read_write | mysql | 756 | 216 | 5.39 | 107.87 | 38.86 | 185.26 | 1557.07 | 623.33 |
gp | 308 | 88 | 2.17 | 43…1 | 250.25 | 461.49 | 1118.06 | 759.88 | |
oltp_update_index | mysql | 0 | 88 | 8.79 | 8.79 | 16.57 | 113.71 | 658.98 | 442.73 |
gp | 0 | 206 | 20.41 | 20.41 | 8.26 | 48.94 | 381.62 | 193.38 | |
oltp_update_non_index | mysql | 0 | 71 | 7.04 | 7.04 | 16.34 | 142.01 | 600.08 | 427.07 |
gp | 0 | 209 | 20.88 | 20.88 | 8.03 | 47.84 | 346.33 | 196.89 | |
oltp_write_only | mysql | 0 | 328 | 8.05 | 48.30 | 16.56 | 124.13 | 667.15 | 314.45 |
gp | 0 | 176 | 4.26 | 25.58 | 23.50 | 234.38 | 609.75 | 559.50 | |
select_random_points | mysql | 1902 | 0 | 190.01 | 190.01 | 1.88 | 5.25 | 265.71 | 6.67 |
gp | 815 | 0 | 81.37 | 81.37 | 8.23 | 12.27 | 84.38 | 16.41 | |
select_random_ranges | mysql | 1925 | 0 | 192.29 | 192.29 | 2.18 | 5.19 | 10.30 | 6.67 |
gp | 941 | 0 | 93.96 | 93.96 | 7.72 | 10.63 | 68.19 | 15.83 |
2.并发测试
测试说明:分别创建10、50个10000数据的表,供10、50个用户并发操作,记录120s内读写操作
测试脚本 | 并发数 | 线程数 | 数据库 | 读总数 | 写总数 | 每秒事务数 | 每秒读写次数 | 最小耗时 | 平均耗时 | 最长耗时 | 超过95%平均耗时 |
---|---|---|---|---|---|---|---|---|---|---|---|
read | write | tps / per sec. | qps / per sec. | min / ms | avg / ms | max / ms | 95th percentile / ms | ||||
oltp_read_write | 10 | 16 | mysql | 236446 | 67556 | 140.62 | 2812.36 | 31.48 | 113.75 | 542.00 | 193.38 |
gp | 53844 | 15276 | 31.73 | 638.72 | 171.53 | 503.91 | 1551.63 | 787.74 | |||
oltp_read_write | 50 | 16 | mysql | 215404 | 61544 | 128.00 | 2559.99 | 36.85 | 124.95 | 545.47 | 253.35 |
gp | 51814 | 14789 | 30.70 | 614.69 | 168.55 | 519.91 | 1810.44 | 831.46 |
2.磁盘监控
在导入导出查询等过程中,利用ssh多台机器登录实验机器进行了对集群中三台机器的cpu和磁盘利用率进行了监控
三、最后总结
1.单表查询中模糊查询速度gp要远高于mysql,其他查询略低于mysql
2.更新,读并写,操作速度和每秒事务数要高于mysql
其余查询mysql性能优异
3.gp不支持高并发,在并发测试中没有mysql出色
4.