mysql、clickhouse读写分离性能测试
背景:
直接用clickhosue處理,每次更新有1秒的延遲(目前提交機制1秒或者1000條提交一次);
clickhouse支持導入mysql數據,也支持統計查詢mysql數據;
所以測試評估一下mysql直接統計查詢、使用clickhouse統計查詢mysql數據、直接使用clickhouse查詢統計的性能對比;
1、導入測試數據100w
插入性能:mysql-> 300/s;2核、16g內存
????????????????? Clickhouse-> 20000/s;2核、16g內存???? ??
2、使用mysql測試:
a、select assetId ,count(*) from alert a? group by assetId;? //統計long類型耗時:19.5sb、select title ,count(*) from alert a? group by title;? //統計String類型耗時:29.9sc、select assetId ,title ,count(*) from alert a? group by assetId,title;? //多字段類型統計耗時:20.5sselect * from alert limit 0,100;? //列表查詢 耗時:0.006sselect * from alert where title like '%title%' limit 0,100;? //模糊查詢 耗時:0.007s3、使用clickhouse查詢mysql測試
1、SELECT assetId ,COUNT(*) FROM mysql('127.0.0.1:3306', 'test', 'test', 'test', 'test') group by assetId; 耗時:1.3s 2、SELECT title ,COUNT(*) FROM mysql('127.0.0.1:3306', 'test', 'test', 'test', 'test') group by title; 耗時:0.8s 3、SELECT assetId,title ,COUNT(*) FROM mysql('127.0.0.1:3306', 'test', 'test', 'test', 'test') group by assetId,title; 耗時:1s 4、SELECT * FROM mysql('127.0.0.1:3306', 'test', 'test', 'test', 'test') limit 0,100 耗時:12.7s 5、SELECT * FROM mysql('127.0.0.1:3306', 'test', 'test', 'test', 'test') where title like '%title%' limit 0,100 耗時:12.7s4、使用clickhouse查詢測試?
1、select assetId ,count(*) from alert a group by assetId; //統計long類型 耗時:0.08s 2、select title ,count(*) from alert a group by title; //統計String類型 耗時:0.06s 3、select assetId ,title ,count(*) from alert a group by assetId,title; //多字段類型統計 耗時:0.12s 4、select * from alert limit 0,100; //列表查詢 耗時:0.05s 5、select * from alert where title like '%title%' limit 0,100; //模糊查詢 耗時:0.05s5、總結:
| sql | mysql | ck查mysql | ck |
| 1 | 19.5s | 1.3s | 0.08s |
| 2 | 29.9s | 0.8s | 0.06s |
| 3 | 20.5s | 1s | 0.12s |
| 4 | 0.006s | 12.7s | 0.05s |
| 5 | 0.007s | 12.7s | 0.05s |
統計查詢:
ck查mysql比直接查mysql快20倍左右;
ck直接查比mysql快200倍左右;
ck存儲是mysql的6倍左右。
列表/模糊查詢:
mysql查詢速度比ck快8倍左右;比使用ck查mysql快2000倍左右。
追求極致性能推薦直接使用ck存儲查詢,弊端是更新有1s延遲;
不追求極致性能推薦使用mysql存儲,使用mysql進行列表、模糊查詢,使用ck查mysql的方式統計查詢;弊端是每次查詢需要帶有('127.0.0.1:3306', 'test', 'test', 'test', 'test')?mysql信息.
總結
以上是生活随笔為你收集整理的mysql、clickhouse读写分离性能测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Webserver内存溢出分析
- 下一篇: clickhouse数据手动迁移