企业运维训练营之数据库原理与实践— AliSQL和读写分离基本原理—AliSQL(上)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 企业运维训练营之数据库原理与实践— AliSQL和读写分离基本原理—AliSQL(上)

第二章 AliSQL和读写分离基本原理

 

一、 AliSQL

 

image.png

 

AliSQL是阿里云深度定制的MYSQL独立分支,在社区版功能上又额外提供了MySQL企业版的功能,提供了更加强大的性能,比如备份恢复、线程池、并行查询等,且能够兼容 Oracle 。

 

AliSQL基于X-Engine存储架构引擎。X-Engine是阿里云数据库产品事业部研发联机事务处理数据库引擎,目前已经应用到阿里集团诸多业务系统中,大幅缩减了业务成本。

 

全新的X-Engine存储引擎不仅能够无缝对接MySQL,同时它使用了分层存储架构的思想,面向大规模海量数据存储提供了高并发的事务处理能力,降低了存储成本。

 

在大部分大数据场景下,数据被访问的机会是不均等的,访问频繁的热数据占比很少。X-Engine能够根据数据的访问频度不同,将数据划分为多个层次。

 

image.png

 

AliSQL的常用功能如下:

 

1) Native Flashback

 

在数据库运维过程中可能会出现误操作,比如误删了某些表或表中数据。常见恢复手段是通过Binlog恢复。但Binlog操作比较复杂,容易出错且耗时较长。而通过备份集恢复则需要额外系统资源,因此在数据量较大时,恢复时间不可控。

 

针对以上痛点,AliSQL提供了Native Flashback能力。无需在客户侧进行复杂的恢复操作,经过简单的SQL语句,即可查询与恢复误操作前的历史数据,节省了大量时间,保证了业务平稳运行。

 

2) Thread Pool

 

数据库团队为了发挥RDS的最佳性能,提供了Thread Pool功能,将线程与会话分离。在拥有大量会话的同时,只需少量线程即可完成会话任务。MySQL默认线程使用会话独占模式,因此每个会话都会创建独立线程。大量会话存在会导致大量资源争抢,导致大量系统线程调度与缓存失效,进而导致数据库性能急剧下降。

 

阿里云RDS线程池实现了不同SQL的操作优先级与并发控制机制,将连接池始终控制在最佳连接数附近,保持在高性能状态。线程池具有几个优势:

 

在大量线程并发工作时,线程池会自动调节线程数量在合理范围之内,不会过高

 

大量事务并发执行时,线程池会将语句与事务分为不同优先级

 

线程池可以给予管理类SQL更高优先级,保证此类语句优先执行。

 

3) Statement Outline

 

在生产环境中,SQL语句执行计划可能经常发生改变,而利用optimizer hint与index hint可以使MySQL稳定执行,计划保持不变,以最优方法持续执行。

 

4) Sequence Engine

 

在RDS数据库系统中,不论是单节点业务组件还是分布式系统的全局唯一值,或更多系统的幂等控制,单调递增唯一值是用户的常见需求。不同数据库系统有不同的实现方法,MySQL中提供了AUTO_INCREMENT。

 

在MySQL数据库中,如果业务希望封装唯一值,使用AUTO_INCREMENT方法会有很多不便。在实际应用中也存在不同的折中方法,比如序列值由应用端或proxy生成,弊端在于会将状态带到应用端,增加扩容与缩容复杂度。因此AliSQL提供了sequence engine功能,实现了MySQL存储引擎的设计接口,但底层数据仍然使用现在的存储引擎,以达到效果。

 

5) Returning

 

MySQL语句执行结果的报文通常分为三类,分别为Resultset、OK和ERR。针对DML语句,返回OK或ERR报文会影响记录或扫描记录等属性。因此,在很多业务场景下,执行insert、update、delete等DML语句,都会跟随select查询当前内容,以方便后续的业务处理,减少客户端与服务器的交互。

 

6) Lizard事务系统

 

Lizard事务系统能够更好地提升MySQL数据库的吞吐能力,支持分布式事务与全局一致性。

 

image.png

 

使用Native Flashback功能时,可以通过select...from<表名> as of timestamp<表达式>。具体示例如上图,第一个示例表示将数据恢复到2020-11-11 0点,也支持表达式的方式。

接下篇:https://developer.aliyun.com/article/1225618?spm=a2c6h.13148508.setting.19.187d4f0etAV6Hb

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
9天前
|
存储 SQL 数据库
数据库设计案例:电商系统数据库设计实践
数据库设计案例:电商系统数据库设计实践
35 1
|
2天前
|
存储 算法 数据库
矢量数据库在图像识别与检索中的应用实践
【4月更文挑战第30天】本文探讨了矢量数据库在图像识别与检索中的应用,通过特征提取(如SIFT、SURF)、编码和相似度度量实现快速识别。在图像检索流程中,经过预处理、特征提取和编码后,矢量数据库用于查询相似特征,排序后展示给用户。实际案例显示,矢量数据库能提升电商平台的商品图像搜索效率和用户体验。随着技术发展,这一领域应用前景广阔。
|
2天前
|
存储 算法 搜索推荐
矢量数据库基础:概念、原理与应用场景
【4月更文挑战第30天】矢量数据库,处理高维向量数据的工具,应用于GIS、推荐系统、图像搜索及语义搜索。核心原理是将原始数据嵌入到高维空间,通过索引算法优化搜索性能。现代深度学习模型如Word2Vec提升向量表示准确性,KD-Tree、LSH等算法加速相似性搜索。随着技术发展,矢量数据库在数据科学领域的重要性日益增强。
|
9天前
|
存储 SQL 数据库
数据库库表结构设计:原理、实例与最佳实践
数据库库表结构设计:原理、实例与最佳实践
25 0
|
10天前
|
数据库
头歌实践平台--数据库原理
头歌实践平台--数据库原理
16 0
|
10天前
|
C#
【自考】之数据库系统原理
【自考】之数据库系统原理
15 0
|
20天前
|
SQL 监控 数据库
数据库管理与电脑监控软件:SQL代码优化与实践
本文探讨了如何优化数据库管理和使用电脑监控软件以提升效率。通过SQL代码优化,如使用索引和调整查询语句,能有效提高数据库性能。同时,合理设计数据库结构,如数据表划分和规范化,也能增强管理效率。此外,利用Python脚本自动化收集系统性能数据,并实时提交至网站,可实现对电脑监控的实时性和有效性。这些方法能提升信息系统稳定性和可靠性,满足用户需求。
62 0
|
1天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
1天前
|
SQL 关系型数据库 MySQL
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
|
1天前
|
SQL 关系型数据库 MySQL
【MySQL-1】理解关系型数据库&数据的数据模型
【MySQL-1】理解关系型数据库&数据的数据模型