简介:提升 MySQL 数据库性能
按照分步指南操作,提升应用程序的性能。
概述
关系型数据库是大多数应用程序的基石。但在可扩展性和低延迟方面,提升性能的手段是有限的。即使通过添加副本扩展读取,基于磁盘的存储也会带来物理限制。应对这一限制的最有效策略是使用内存缓存来补充基于磁盘的数据库。
本教程中创建的 ElastiCache for Redis 节点和 MySQL 数据库适用于 AWS 免费套餐。
学习内容
在本教程中,您将学习如何通过为关系型数据库添加内存缓存层来提升应用程序的性能。您将在 MySQL 数据库之上使用 Amazon ElastiCache for Redis 实现旁路缓存策略。旁路缓存策略是提升数据库性能的最常用方法之一。当应用程序需要从数据库读取数据时,它首先查询缓存。如果未找到数据,应用程序将查询数据库,并使用结果填充缓存。如果底层数据库中的相关记录被修改,有多种方法可以使缓存失效,但在本教程中,我们将使用 Redis 提供的存留时间 (TTL) 过期功能。
AWS 使用经验
初级到中级
时长
120 分钟
所需费用
可通过 免费套餐 试用
教程前提条件
- 拥有管理员级别访问权限的 AWS 账户**
- 推荐的浏览器:最新版本的 Chrome 或 Firefox
[*]此估算值假设您在整个教程中都遵循推荐的配置,并在 2 小时内终止所有资源。
[**]在过去 24 小时内新创建的账户可能无法使用本教程所需的服务。
应用程序架构
图 1 使用 Amazon ElastiCache for Redis 实现旁路缓存
前提条件
请留出 20 分钟时间完成前提条件部分。
本教程用 Python 编写的示例演示了一些机制,来说明一些缓存技术。希望这些代码可以轻松转换为您选择的语言。
为了完成本教程,您需要访问一个 EC2 实例。如果您还没有运行实例,请按照以下说明预配一个。
获得对 EC2 实例的访问权限后,请运行以下命令:
$ sudo yum install git -y
$ sudo yum install mysql -y
$ sudo yum install python3 -y
$ pip3 install --user virtualenv
$ git clone https://github.com/aws-samples/amazon-elasticache-samples/
$ cd amazon-elasticache-samples/database-caching
$ virtualenv venv
$ source ./venv/bin/activate
$ pip3 install -r requirements.txt
现在您已经准备好开始本教程了。
模块
本教程分为以下几个短模块。您必须完成每个模块,上一个模块完成后才能继续下一个模块。
- 创建 Redis 集群(10 分钟):创建第一个 Redis 集群,并配置其节点类型和安全组
- 创建 MySQL 数据库(20 分钟):创建 RDS/MySQL 数据库实例和 MySQL 表
- 填充 MySQL 数据库(10 分钟):使用预填充的 SQL 脚本连接、填充并运行第一个 MySQL 表
- 缓存和最佳实践(60 分钟):您将学习两种存储和检索数据的技术
- 清理资源(10 分钟):您将学习如何删除 Redis 集群和 MySQL 数据库