小微企业阿里云最佳实践系列(六):千万、上亿条数据在阿里云 MySQL 云数据库下的性能表现

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 本博文主要为大家介绍阿里云的 MySQL 云数据库性能对别,通过 1000 万条数据以及 1 亿条数据在 RDS for MySQL 上面的表现来粗略的了解数据性能,高配版选择的 8 核 16 G 内存的 MySQL 数据库,低配选择的 1 核 1 G 内存的数据库。

关联博文
小微企业阿里云最佳实践系列(一):ECS 服务器与 RDS 数据库
小微企业阿里云最佳实践系列(二):RDS 数据库与DMS 数据库管理(数据管理)
小微企业阿里云最佳实践系列(三):OSS 图片存储(对象存储)与 CDN 内容分发
小微企业阿里云最佳实践系列(四):云监控与 SLS 日志服务
小微企业阿里云最佳实践系列(五):零成本使用 DMS 数据库实验室学习研究
小微企业阿里云最佳实践系列(六):千万、上亿条数据在阿里云 MySQL 云数据库下的性能表现
小微企业阿里云最佳实践系列(专辑)

概述

阅读对象

本博文主要写给创业团队、技术团队人数 < 5 人、没有专业运维等小微企业作为参考,需要掌握基础的服务器管理、软件开发等经验。

博文主要内容

本博文主要为大家介绍阿里云的 MySQL 云数据库性能对别,通过 1000 万条数据以及 1 亿条数据在 RDS for MySQL 上面的表现来粗略的了解数据性能,高配版选择的 8 核 16 G 内存的 MySQL 数据库,低配选择的 1 核 1 G 内存的数据库。

实践过程

第一步:在控制台购买两种配置的数据

这里我们为了测试,选择按量付费,可以看到两种配置的价格差距在 10~12 倍左右,一般我们个人博客、小型企业网站选择 1 核 1 G 的配置完全够用,这里我们为了测试 MySQL 的性能所以选择了一个 8 核 16 G 的高配,当然,阿里云也提供了更高配置的数据库,大家可以自行选择进行测试。
1.一核一G内存数据库购买信息.pngimage
2.八核十六G内存数据库购买信息.pngimage

第二步:初始化数据库配置、账号、数据库等

在数据库购买成功之后,阿里云会为了我们初始化创建数据库,这里需要耐心等待(博主等待了 5 分钟左右,比自己搭建 MySQL 还是快不少)
3.耐心等待数据库创建完成.pngimage
数据库初始化完成之后我们可是开始创建账号了,这里为了测试方便,我们选择使用 root 账号并设置一个高强度的密码(生产环境不建议使用高权限 root 账号,建议使用普通账号)
4.低配的数据库创建高权限账号.pngimage
在阿里云提供的 MySQL 在线管理工具首次使用时,我们需要设置管理工具的白名单,按照弹出的提示点击设置本实例即可
5.设置 DMS 数据管理的白名单.pngimage
登录到 MySQL 数据库实例之后,我们需要按照以下的步骤创建数据库,这里我们以 mysql_test 命名来创建一个测试数据库
6.创建测试数据库.pngimage

第三步:创建测试表以及快速生成测试数据

完成数据库创建之后,我们需要点击左上角这里选择创建的数据(若下拉框未显示,点击旁边的刷新按钮即可),
这里我们添加一些常用的字段:ID、创建时间、修改时间、姓名、手机号、身份证号、用户名、余额
7.创建用于测试的表.pngimage
创建好表之后,我们接下来生成测试数据,阿里云的 DMS 数据管理工具提供了强大的“自动生成测试数据”功能,这里给我们带来了极大的方便。右键点击表名,在弹出的菜单中选择“自动生成测试数据”,然后我们为每个字段选择对应的生成方式(阿里云提供了强大的生成规则,可以在面板中灵活始终各种规则),生成行数这里最大可以选择到 100 万行,这里我们因为要测试上千万、上亿的数据,选择最大上限 100 万行。
8.快速生成测试数据.pngimage
生成好了数据之后我们可以浏览生成的数据,这里可以看到生成的测试数据几乎和真实数据没有什么区别。
9.查看生成的数据.pngimage

第四步:对 MySQL 进行简单的性能测试

在我们测试之前,我们需要对测试数据进行快速复制,我们可以采用以下的 SQL 进行翻倍复制到 1600 万行数据级别

insert into pre_user(name, mobile, id_no, username, balance) select name, mobile, id_no, username, balance from pre_user;

每执行一次,数据库中的数据都会增加一倍,从 100 万行数据增加到 1600 万行数据我们需要执行 4 次,这里可能执行的时间比较长,我们可以两个数据库(高配和低配)一起执行。数据快速复制完成之后我们查询一下数据行数,显示有 1600 万行数据。
10.执行简单的 SQL 查看性能.pngimage
我们为需要测试的字段增加索引(未增加索引的情况下,100 万行数据查询需要 400 毫秒,可见索引的重要性)
11.为需要测试的字段建立索引.pngimage
索引创建好之后我们再次查询数据,在 1600 万行数据的级别下,查询返回 16 行数据总共耗时 28 毫秒,基本上可以满足使用
12.索引创建成功之后我们再次执行查询语句.pngimage
我们分别在高配和低配的数据库上再次执行同样的查询,我们发现高配的只需要 3 毫秒,低配的也只需要 9 毫秒,这里可以看出同样的查询,第二次比第一次快两倍左右
13.两边性能比较.pngimage
查看一下数据库的存储空间,我们发现数据占用了 1.8 GB,索引也占用了 1.8 GB,说明增加索引会增加数据库使用空间,我们应当按照最小化原则以及结合性能要求方面综合考量哪些字段应该增加索引,哪些字段不应该增加索引,一味的增加索引也会造成数据库的负担。
14.查看存储空间.pngimage

第五步:在 3200 万条数据以及 6400 万条数据下的 MySQL 性能表现

刚才我们简单测试了一下 1600 万条数据,这里我们把数据增加到 3200 万条以及 6400 万条数据再进行这里。由于数据量过大,1 核 1 G 的数据库复制较慢,我们这里直接测试高配的数据库(同样使用之前的快速复制 SQL,执行过程等待时间较长,需要耐心等待)。

增加到 3200 万条数据时,数据占用了 3.18 GB,索引占用了 3.86 GB,数据
15.增加到 3200 万级别时的存储空间.pngimage
我们通过常规的 SQL 按照手机号查询,在 3200 万条数据中查找 32 行数据只用了 3 毫秒,可见阿里云的 MySQL 数据库性能还是非常强悍的
16.在 3200 万级别下的查询性能.pngimage

为了进一步测试性能,我们这次把数据量增加到 6400 万(同样使用快速复制 SQL),这里复制数据我们花费的时间更大。
复制完成后我们查看存储空间,数据占用了 6.0 GB,索引占用了 8.32 GB
17.查看 6400 万数据的存储量.pngimage
同样使用手机号查询数据,在 6400 万条数据中查找到 64 条数据,总共耗时 4 毫秒,和 3200 万行数据下耗时差距不大
18.在 6400 万级别数据下的查询性能.pngimage

第六步:测试阿里云 MySQL 在 1.2 亿条数据下的性能表现

在这一步我们要进一步复制数据,会发现等待的时间太长,甚至会超时,我们可以在原来的 SQL 下增加一个判断,每次复制 2000 万行数据来达到 1.2 亿条数据

insert into pre_user(name, mobile, id_no, username, balance) select name, mobile, id_no, username, balance from pre_user where id <= 20000000;

复制完成之后,我们发现数据占用了 9.48 GB,索引占用了 14.99 GB,索引存储空间远超过了数据存储空间
19.达到 1 亿级别时的存储空间.pngimage
同样我们使用手机号来查询数据,在 1.2 亿条数据下,查找 100 行数据耗时 5 毫秒,可以看见在这个数据容量下性能相当强悍,当然我们的业务数据达到了 1 亿级别时,我们采用的架构也会更加复杂。
20.精准查询数据的性能.pngimage
测试了一下 like 模糊查询,在 1.2 亿条数据下,使用 like 模糊查询(前包含)耗时 23 毫秒,基本上满足使用
21.使用 like 查询 5 万条数据.pngimage

总结

在测试的过程中,我们发现 1 核 1 G 的数据库承载能力在千万级别,我们的个人网站、小型企业网站使用低配的数据库完全满足日常需求。
8 核 16 内存的数据承载上亿的数据,查询性能也不差,对于中型企业来说,基本上也是够用了,阿里云也给我们提供了其他更加强悍的数据库。

版权

版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)

原创作者 10086@xiaoi.me 发表于阿里云·云栖社区:https://yq.aliyun.com/users/y4epujtm5wye6

扫码关注我,在线与我沟通、咨询
image

转载请保留原文链接以及版权信息

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
9天前
|
XML Java 数据库连接
性能提升秘籍:如何高效使用Java连接池管理数据库连接
在Java应用中,数据库连接管理至关重要。随着访问量增加,频繁创建和关闭连接会影响性能。为此,Java连接池技术应运而生,如HikariCP。本文通过代码示例介绍如何引入HikariCP依赖、配置连接池参数及使用连接池高效管理数据库连接,提升系统性能。
34 5
|
19天前
|
SQL DataWorks 关系型数据库
阿里云 DataWorks 正式支持 SelectDB & Apache Doris 数据源,实现 MySQL 整库实时同步
阿里云数据库 SelectDB 版是阿里云与飞轮科技联合基于 Apache Doris 内核打造的现代化数据仓库,支持大规模实时数据上的极速查询分析。通过实时、统一、弹性、开放的核心能力,能够为企业提供高性价比、简单易用、安全稳定、低成本的实时大数据分析支持。SelectDB 具备世界领先的实时分析能力,能够实现秒级的数据实时导入与同步,在宽表、复杂多表关联、高并发点查等不同场景下,提供超越一众国际知名的同类产品的优秀性能,多次登顶 ClickBench 全球数据库分析性能排行榜。
|
19天前
|
缓存 监控 关系型数据库
如何根据监控结果调整 MySQL 数据库的参数以提高性能?
【10月更文挑战第28天】根据MySQL数据库的监控结果来调整参数以提高性能,需要综合考虑多个方面的因素
57 1
|
19天前
|
监控 关系型数据库 MySQL
如何监控和诊断 MySQL 数据库的性能问题?
【10月更文挑战第28天】监控和诊断MySQL数据库的性能问题是确保数据库高效稳定运行的关键
38 1
|
19天前
|
缓存 关系型数据库 MySQL
如何优化 MySQL 数据库的性能?
【10月更文挑战第28天】
43 1
|
20天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
97 1
|
23天前
|
Java 数据库连接 数据库
优化之路:Java连接池技术助力数据库性能飞跃
在Java应用开发中,数据库操作常成为性能瓶颈。频繁的数据库连接建立和断开增加了系统开销,导致性能下降。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接,显著减少连接开销,提升系统性能。文章详细介绍了连接池的优势、选择标准、使用方法及优化策略,帮助开发者实现数据库性能的飞跃。
27 4
|
21天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
22 1
|
26天前
|
存储 分布式计算 监控
数据库优化:提升性能与效率的全面策略
【10月更文挑战第21】数据库优化:提升性能与效率的全面策略
|
21天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
49 0

推荐镜像

更多