👉目录
IDC发布报告《中国金融行业分布式事务型数据库市场份额,2023:技术验证结束,迎接高速增长》:在金融整体市场和银行细分市场,腾讯云数据库TDSQL斩获“双料”第一!
在数字化浪潮席卷全球的今天,数据库技术作为计算机科学的重要支柱,承载着数据存储、检索、分析等核心任务,其重要性不言而喻。而在这众多的数据库技术中,MySQL以其开源、稳定、高效的特点,在全球范围内占据了举足轻重的地位。当谈及中国数据库技术的发展时,我们不得不提到腾讯云下的TencentDB for MySQL——这一在本土市场崛起的技术力量。
《中国数据库前世今生》这部纪录片,为我们呈现了中国数据库技术从无到有、从小到大的发展历程。在这其中,TencentDB for MySQL技术的崛起,无疑是中国数据库技术发展史上浓墨重彩的一笔。它不仅是腾讯云在数据库领域多年技术积累和创新成果的集中展现,更是中国数据库技术实力提升的重要标志。
也正通过观看这部纪录片,使我想去有机会深入了解TencentDB for MySQL技术的研发背景、技术特点、应用场景以及市场表现。我们将看到,在腾讯云强大的技术实力支撑下,TencentDB for MySQL如何不断突破自我,提升性能,优化服务,以满足日益增长的数字化需求。同时,我们也将感受到中国数据库技术在国际竞争中所展现出的独特魅力和无限潜力。
让我们一同走进《中国数据库前世今生》的世界,共同体验TencentDB for MySQL技术的崛起之路,见证中国数据库技术的辉煌历程。
云数据库 MySQL(TencentDB for MySQL)是腾讯云推出的一款基于开源数据库 MySQL 的企业级数据库服务。它为用户在云端轻松设置、操作和扩展关系数据库提供了便利。云数据库 MySQL 的主要特点包括:
云存储服务:这是腾讯云平台为互联网应用提供的数据存储服务,确保用户数据的安全性和稳定性。
完全兼容 MySQL 协议:云数据库 MySQL 支持标准的 MySQL 协议,这意味着任何适用于 MySQL 的应用场景都可以无缝迁移到腾讯云数据库上。
高性能、高可靠、易用、便捷的 MySQL 集群服务:腾讯云数据库 MySQL 提供了卓越的性能和可靠性,数据可靠性高达99.9999999%。同时,它还具备易用性和便捷性,让用户能够轻松管理和维护数据库。
丰富的功能整合:
云数据库 MySQL 集成了备份、扩容、迁移等实用功能,帮助用户轻松应对各种数据库管理需求。
新一代数据库工具 DMC:
腾讯云还提供了 DMC 这一先进的数据库管理工具,让用户能够更加便捷地进行数据库的管理、监控和优化。
云数据库 MySQL 支持单节点、双节点、三节点和集群版四种实例架构。
架构 | 说明 | 适用场景 |
---|---|---|
单节点 | 支持版本:MySQL 5.7、8.0。节点:单个节点。 | 个人学习、微型网站、企业非核心小型系统以及大中型企业开发与测试环境。 |
双节点 | 支持版本:MySQL 5.6、5.7、8.0。节点:一主一备。主备复制方式:异步(默认)、半同步。 | 游戏、互联网、物联网、零售电商、物流、保险、证券等行业应用。 |
三节点 | 支持版本:MySQL 5.6、5.7、8.0。节点:一主两备。主备复制方式:异步(默认)、强同步、半同步。 | 游戏、互联网、物联网、零售电商、物流、保险、证券等行业应用。 |
集群版 | 支持版本:MySQL 5.7、8.0。节点:一个读写节点和最多5个只读节点。主备复制方式:异步、半同步(默认)。 | 游戏、互联网、物联网、零售电商、物流、保险、证券等行业应用。 |
今天,我们就来体验一次,国产数据发展至今的强大之处。首先先购买或者体验一个TencentDB的实例。
配置 | 参数 |
---|---|
CPU | 1核 |
内存 | 1G |
MySQL | 5.8 |
腾讯云轻量服务器 | CentOS7.5 |
在开始压测之前,我们首先来了解几个和压测有关的关键字,通过了解这些指标的定义和计算方法,可以更好地评估和优化系统的性能:
QPS(Queries Per Second)指的是每秒查询率,是衡量系统处理查询请求能力的一个重要指标。它通常用于评估搜索引擎、数据库、API等系统的性能。
TPS(Transactions Per Second)即每秒事务处理率,是衡量系统在单位时间内处理事务数量的一个重要指标。它通常用于评估数据库系统、交易系统等需要处理复杂事务的系统的性能。
RT(95%)通常指的是95%的请求的延迟时间,单位为毫秒,它反映了系统处理请求的响应速度。
以下是详细介绍:
我们通过以下命令,获取执行 script.rpm.sh 并执行脚本。
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
sudo yum -y install sysbench
sysbench --version
sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=test_db --tables=20 --table_size=100000 oltp_read_write --db-ps-mode=disable prepare
执行成功后,查看我们通过 腾讯云的 DMS 数据管理工具(数据库管理(DMC)是一个高效、可靠的一站式数据库管理平台,帮您更加便捷、规范地管理多种数据库实例。),查看的 TencentDB 服务器数据。
上述的命令是用来运行 sysbench
的 oltp_read_write
测试,下面是对这个命令的解释:
参数 | 解释 |
---|---|
--db-driver=mysql | 指定数据库驱动为 MySQL |
--time=300 | 测试持续时间,单位为秒 |
--threads=10 | 并发线程数量 |
--report-interval=1 | 报告间隔时间,单位为秒 |
--mysql-host=127.0.0.1 | MySQL 服务器地址 |
--mysql-port=3306 | MySQL 服务器端口 |
--mysql-user=root | MySQL 用户名 |
--mysql-password=123456 | MySQL 密码 |
--mysql-db=test_db | 要测试的数据库名称 |
--tables=20 | 生成的表数量 |
--table_size=1000000 | 每个表的记录数 |
oltp_read_write | 运行 oltp_read_write 测试 |
--db-ps-mode=disable | 禁用预处理语句 |
prepare | 准备阶段,创建表和索引 |
在压测执行的过程中,TencentDB 提供了专业的可视化工具,对实例进行监控。
云数据库 MySQL 支持主实例(包括读写节点)、只读实例(包括只读节点)、灾备实例,以及数据库代理节点的监控,并为每个实例提供独立的监控视图供查询。
云数据库 MySQL 包括资源监控、引擎监控(普通)、引擎监控(扩展)、部署监控4种监控类型,通过查看不同监控类型的指标,可快速、准确的了解实例性能及运行状况。
资源监控:提供 CPU、内存、磁盘及网络相关的监控数据。
引擎监控(普通):提供连接数、锁信息、热点表、慢查询等相关的监控数据,方便您诊断故障及性能优化。
引擎监控(扩展):提供更为丰富引擎相关的监控指标,协助您最大限度发现数据库存在或潜在的健康问题。
部署监控:提供主从延迟相关的监控指标。部署监控分为主机和备机:
若实例为主实例,则实例部署监控的对象是主实例与其隐藏备机之间的链路,部署监控展示为隐藏备机的 IO、SQL 线程状态,主从延迟距离和主从延迟时间指的是主实例与其隐藏备机之间。
腾讯云可观测平台从实例维度为云数据库 MySQL 实例提供丰富的监控指标,具体请参见下表。
除了通过监控指标来掌握实例的运行状况,云数据库 MySQL 也支持监控事件和事件告警,通过设置事件规则、事件目标及推送用户,当检测到异常事件,事件告警将通过多种可选的方式向用户发送告警通知,帮助用户更全面的掌控实例的运行信息。
详细了解事件告警,请参见 事件总线。
详细了解支持的监控事件,请参见 云数据库 MySQL 事件列表。
我们从10个线程开始压,压10秒钟,并且同时读和写的操作。
sysbench --db-driver=mysql --time=10 --threads=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=test_db --tables=20 --table_size=1000000 oltp_read_write --db-ps-mode=disable run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 10
Report intermediate results every 1 second(s)
Initializing random number generator from current time
Initializing worker threads...
Threads started!
[ 1s ] thds: 10 tps: 79.84 qps: 1660.77 (r/w/o: 1167.73/323.37/169.67) lat (ms,95%): 161.51 err/s: 0.00 reconn/s: 0.00
[ 2s ] thds: 10 tps: 56.02 qps: 1177.50 (r/w/o: 841.35/224.09/112.05) lat (ms,95%): 132.49 err/s: 0.00 reconn/s: 0.00
[ 3s ] thds: 10 tps: 49.00 qps: 976.99 (r/w/o: 681.99/198.00/97.00) lat (ms,95%): 110.66 err/s: 0.00 reconn/s: 0.00
[ 4s ] thds: 10 tps: 49.99 qps: 970.88 (r/w/o: 676.92/193.98/99.99) lat (ms,95%): 112.67 err/s: 0.00 reconn/s: 0.00
[ 5s ] thds: 10 tps: 47.00 qps: 969.95 (r/w/o: 683.96/190.99/95.00) lat (ms,95%): 106.75 err/s: 0.00 reconn/s: 0.00
[ 6s ] thds: 10 tps: 57.01 qps: 1107.21 (r/w/o: 768.14/226.04/113.02) lat (ms,95%): 116.80 err/s: 0.00 reconn/s: 0.00
[ 7s ] thds: 10 tps: 66.00 qps: 1347.97 (r/w/o: 945.98/269.99/132.00) lat (ms,95%): 108.68 err/s: 0.00 reconn/s: 0.00
[ 8s ] thds: 10 tps: 68.00 qps: 1352.07 (r/w/o: 949.05/266.01/137.01) lat (ms,95%): 108.68 err/s: 0.00 reconn/s: 0.00
[ 9s ] thds: 10 tps: 65.99 qps: 1321.78 (r/w/o: 923.85/265.96/131.98) lat (ms,95%): 121.08 err/s: 0.00 reconn/s: 0.00
[ 10s ] thds: 10 tps: 66.00 qps: 1307.02 (r/w/o: 914.01/262.00/131.00) lat (ms,95%): 134.90 err/s: 0.00 reconn/s: 0.00
[ 11s ] thds: 8 tps: 7.00 qps: 84.01 (r/w/o: 49.01/27.00/8.00) lat (ms,95%): 104.84 err/s: 0.00 reconn/s: 0.00
[ 12s ] thds: 8 tps: 0.00 qps: 0.00 (r/w/o: 0.00/0.00/0.00) lat (ms,95%): 0.00 err/s: 0.00 reconn/s: 0.00
[ 13s ] thds: 8 tps: 0.00 qps: 0.00 (r/w/o: 0.00/0.00/0.00) lat (ms,95%): 0.00 err/s: 0.00 reconn/s: 0.00
[ 14s ] thds: 8 tps: 0.00 qps: 0.00 (r/w/o: 0.00/0.00/0.00) lat (ms,95%): 0.00 err/s: 0.00 reconn/s: 0.00
[ 15s ] thds: 6 tps: 2.00 qps: 12.00 (r/w/o: 2.00/8.00/2.00) lat (ms,95%): 13550.80 err/s: 0.00 reconn/s: 0.00
[ 16s ] thds: 6 tps: 0.00 qps: 0.00 (r/w/o: 0.00/0.00/0.00) lat (ms,95%): 0.00 err/s: 0.00 reconn/s: 0.00
SQL statistics:
queries performed:
read: 8610
write: 2460
other: 1230
total: 12300
transactions: 615 (36.98 per sec.)
queries: 12300 (739.56 per sec.)
ignored errors: 0 (0.00 per sec.)
reconnects: 0 (0.00 per sec.)
General statistics:
total time: 16.6302s
total number of events: 615
Latency (ms):
min: 98.59
avg: 188.90
max: 13814.12
95th percentile: 132.49
sum: 116172.86
Threads fairness:
events (avg/stddev): 61.5000/37.36
execution time (avg/stddev): 11.6173/2.44
1s thds: 10 tps: 79.84 qps: 1660.77(r/w/o: 1167.73/323.37/169.67) lat (ms,95%): 161.51 err/s: 0.00 reconn/s: 0.00
这份报告提供了在1秒内,10个线程对数据库进行压力测试的结果,包括事务处理能力、查询执行速度、延迟以及错误和重连的情况。
附上参数和含义的解释:
参数 | 数值 | 含义解释 |
---|---|---|
时间 | 1s | 测试进行了1秒的时间 |
线程数(thds) | 10 | 测试使用了10个线程 |
每秒事务数(tps) | 79.84 | 每秒完成的事务数 |
每秒查询数(qps) | 1660.77 | 每秒执行的查询数 |
读/写/其他(r/w/o) | 1167.73/323.37/169.67 | 每秒读、写和其他操作的次数 |
95%延迟(lat, ms) | 161.51 | 95%的请求的延迟时间,单位为毫秒 |
每秒错误数(err/s) | 0.00 | 每秒发生的错误数 |
每秒重连数(reconn/s) | 0.00 | 每秒发生的重连数 |
以下是对 sysbench
工具进行性能测试的报告进行详细的解释:
报告为每秒提供统计数据:
第一秒:
第二秒:
这个模式持续到第11秒,每秒报告不同的TPS、QPS和延迟。
第十一秒:
第十二至十四秒:
第十五秒:
第十六秒:
根据sysbench的压力测试,我们对 TencentDB for MySQL1核1G服务器性能总结。
总体来说,对于1核1G的服务器,初期性能表现不错,服务器的性能和稳定性,确保在高负载下仍能保持较好的响应时间和一致性。
国产数据库技术经历了从技术启蒙、引进、成长到加速发展的四个阶段。特别是在2010年至今,随着数字化转型的加速,国产数据库如阿里云的Polar DB、腾讯云的TDSQL等蓬勃发展,展现出强大的竞争力和广阔的发展前景。例如,OceanBase在TPC-C基准测试中打破了Oracle的世界记录,成为首个登顶该榜单的中国数据库产品,标志着国产数据库在云计算时代迎来了换道超车。在国际上的认可度逐渐提升。OceanBase的成功不仅展示了中国数据库技术的实力,也标志着国产数据库在国际竞争中的崛起。未来,随着技术的不断进步和市场的进一步拓展,国产数据库技术有望在全球范围内发挥更加重要的作用。
在这之前,未有国产数据库涉足核心业务系统;在这之后,国产数据库企业无需再向用户证明国产能不能打。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。