【七天深入MySQL实战营】答疑汇总Day7 MySQL分支 - AliSQL 的性能优化实战

本文涉及的产品
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 【最后一课】【MySQL分支 - AliSQL 的性能优化实战】讲师:黄忠,阿里云资深技术专家。课程内容:深入介绍AliSQL的几个核心通用性能优化技术;抽丝剥茧,带你整体学习从问题提出到解决方案落地全过程。答疑汇总:特别感谢班委@陈亮 同学

Day1 MySQL MGR 8.0 高可用实战

https://developer.aliyun.com/article/781434

Day2 MySQL 高并发场景实战

https://developer.aliyun.com/article/781435

Day3 MySQL Java 开发实战

https://developer.aliyun.com/article/781436

Day4 MySQL查询优化实战

https://developer.aliyun.com/article/781439

Day5 MySQL 开发规约实战

https://developer.aliyun.com/article/781442

Day6 MySQL表和索引优化实战

https://developer.aliyun.com/article/781445

Day7 MySQL分支 - AliSQL 的性能优化实战

https://developer.aliyun.com/article/781446 

【最后一课】【MySQL分支 - AliSQL 的性能优化实战】
讲师:黄忠,阿里云资深技术专家。
课程内容:深入介绍AliSQL的几个核心通用性能优化技术;抽丝剥茧,带你整体学习从问题提出到解决方案落地全过程。
答疑汇总:特别感谢班委@陈亮 同学

Q1:主从复制 和MGR 复制,主从切换后,应用如何感知,谢谢?

A1:最早期技术方案会选择DNS,但是DNS存在cache不及时的问题。第二种方法通过IP直接切主库,这种方式相比DNS很快。第三种方法前面加proxy,由proxy来实时感知后端的状态。还有在应用里自主判断,rdsHA也可以实时切换IP进行链路连接,rds如果用了proxy链路会主动感知后端的切换状态,快速识别后端的主库。

 

Q2:老师好,请问分库分表怎么确保主键的唯一,保证事务的完整性?

A2mysql另外部署一个序列的生成器,在alisqlsequence,可以用来在分布式情况下自动生成主键;另外业务有自己明确的编号,可以后端不生成另外的主键。在分库分表又在不同实例的情况下,就要用分布式事务来保证,但是分布式事务太多会影响效率。

 

Q3alisql 线程池 跟percona 线程池有什么区别?

A3:最早是一样的,percona 线程池不能在任何情形下都开启,alisql进行了创新,对不同线程进行隔离,把读请求和写请求分离,比如再对不同的读请求进行语法梳理进行拆分归类成复杂和简单队列,来解决线程池中相对的公平。原则上是将不同的请求归类再分配到不同的线程队列中执行,让快的快,让线程池适应不同的场景。

 

Q4:低并发场景下,比如64并发,不开启线程池比开启线程池性能好的原因是什么呢?望解答,谢谢

A4:这是一个相对的值还要看资源。当CPU足够时,不开线程池请求会直接到工作线程,但是开了线程池会有工作线程入队列和出队列的操作,在64并发时会有点影响,当资源足够时这时入队出队会变成负担。如果资源不够的情况下,线程池虽然有IO队列的成本,但对CPU线程执行会有提升。要理解课程里讲的线程池的收益。

 

Q5RDSflashbaksql outline功能会开源吗?

A5:这两个功能很好,但是需要跟着开源计划去规划,目前不确定。

 

Q6mysql 5.7 查询缓存表更新失效问题,alisql 有这个问题么?

A6 alisql没有这个问题,完全重写了。Alisql给每个对象维护了一个版本号,更新时只更新版本号,查询的时候只查询对应的版本号,相当于颗粒度更细。

 

Q7MySQL 逻辑时钟执行原理是怎么样的呢?

A7:我理解这是logical_clock的执行原理,它主要是用来标识主库的哪些信息在从库是可以并行执行的。

 

Q8:老师,可以从oracle , mysql 5.7/ 8.0 迁移数据到 alisql

么?迁移方便么?

A8:有上云服务,通过备份来进行物理迁移等等。

 

Q9oracle 的存储过程支持么

A9mysql支持存储过程,两个语法上会不同。

 

Q10:经常有开发要建立一个5字段的唯一索引,有什么好的建议?

A10:要从业务角度需要重新思考这样的业务模型,比如我们的交易号里包含交易日期,交易号等等把很多信息集成到一个主键。

 

Q11:主从复制逻辑时钟的工作原理是怎么样的?

A11:同Q7

 

Q12alisql 支持全局事务么? alisql 百亿大表查询快么?

A12alisql大表查询性能会更好一些,已经有很多的优化。全局事务参考这个文档https://help.aliyun.com/document_detail/197571.html?spm=a2c4g.11186623.6.607.5f144dbeVC9ezv

 

Q13:功能 binlog in redo 的初衷是什么??

A13commit的时间存在两次IO的刷盘,希望通过减少一次IO又能提升性能,保证binlog事务的完整一致性。

 

Q14innnodb_buffer_pool_instance参数的配置,通常需要考虑哪些信息,配置成 1 4 ,最主要的区别在哪里?

A14Mysql buffer查询块需要锁页,当并发高时,锁会非常集中。如果bp比较大,可以考虑增加buffer pool instance,比如4G以下设置成18G设置成216G设置成4,关键在于增大操作不同实例的并行度,虽然有助于降低机器CPU,不算是优化的关键点。参考文档https://developer.aliyun.com/article/174241

 

Q15:老师好,我现在遇到个生产问题,云下centos7上单实例mysql5.73个月内存使用缓慢上升,目前90%以上(32G内存),KILL应用连接没有用,除了重启实例,该如何释放内存,并有效限制MySQL对内存的使用?

A15centos 7的内存分成了多个buffer,这个多buffer机制会造成内存偏高,可以使用jemalloc,但jemalloc也得挑好版本才行;第二个是不是打开了performance schema,如果你的SQL是动态生成的,可能会占用很多内存;第三个看一下后续版本有没有相关的memory bug fix。还有一些原因,要具体情况具体分析。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
10天前
|
存储 缓存 负载均衡
mysql的性能优化
在数据库设计中,应选择合适的存储引擎(如MyISAM或InnoDB)、字段类型(如char、varchar、tinyint),并遵循范式(1NF、2NF、3NF)。功能上,可以通过索引优化、缓存和分库分表来提升性能。架构上,采用主从复制、读写分离和负载均衡可进一步提高系统稳定性和扩展性。
31 9
|
19天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
88 1
|
25天前
|
NoSQL 关系型数据库 MySQL
MySQL与Redis协同作战:优化百万数据查询的实战经验
【10月更文挑战第13天】 在处理大规模数据集时,传统的关系型数据库如MySQL可能会遇到性能瓶颈。为了提升数据处理的效率,我们可以结合使用MySQL和Redis,利用两者的优势来优化数据查询。本文将分享一次实战经验,探讨如何通过MySQL与Redis的协同工作来优化百万级数据统计。
55 5
|
1月前
|
架构师 关系型数据库 MySQL
MySQL最左前缀优化原则:深入解析与实战应用
【10月更文挑战第12天】在数据库架构设计与优化中,索引的使用是提升查询性能的关键手段之一。其中,MySQL的最左前缀优化原则(Leftmost Prefix Principle)是复合索引(Composite Index)应用中的核心策略。作为资深架构师,深入理解并掌握这一原则,对于平衡数据库性能与维护成本至关重要。本文将详细解读最左前缀优化原则的功能特点、业务场景、优缺点、底层原理,并通过Java示例展示其实现方式。
77 1
|
20天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
47 0
|
29天前
|
存储 关系型数据库 MySQL
MySQL性能优化实践指南
【10月更文挑战第16天】MySQL性能优化实践指南
45 0
|
29天前
|
存储 关系型数据库 MySQL
MySQL性能优化指南
【10月更文挑战第16天】MySQL性能优化指南
35 0
|
2月前
|
存储 关系型数据库 MySQL
mysql-性能优化(一)
mysql-性能优化(一)
|
2月前
|
关系型数据库 MySQL 数据处理
针对MySQL亿级数据的高效插入策略与性能优化技巧
在处理MySQL亿级数据的高效插入和性能优化时,以上提到的策略和技巧可以显著提升数据处理速度,减少系统负担,并保持数据的稳定性和一致性。正确实施这些策略需要深入理解MySQL的工作原理和业务需求,以便做出最适合的配置调整。
348 6
|
2月前
|
SQL 存储 关系型数据库
深入 MySQL 的执行计划与性能优化
深入 MySQL 的执行计划与性能优化
39 0

相关产品

  • 云数据库 RDS MySQL 版