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

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 【最后一课】【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。还有一些原因,要具体情况具体分析。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8天前
|
存储 关系型数据库 MySQL
MySQL数据库进阶第三篇(MySQL性能优化)
MySQL数据库进阶第三篇(MySQL性能优化)
|
2天前
|
SQL 关系型数据库 MySQL
MySQL性能优化实战:从索引策略到查询优化
MySQL性能优化聚焦索引策略和查询优化。创建索引如`CREATE INDEX idx_user_id ON users(user_id)`可加速检索;复合索引考虑字段顺序,如`idx_name ON users(last_name, first_name)`。使用`EXPLAIN`分析查询效率,避免全表扫描和大量`OFFSET`。通过子查询优化分页,如LIMIT配合内部排序。定期审查和调整策略以提升响应速度和降低资源消耗。【6月更文挑战第22天】
88 2
|
7天前
|
关系型数据库 MySQL 数据挖掘
MySQL窗口函数详解(概念+练习+实战)
MySQL窗口函数详解(概念+练习+实战)
28 1
|
10天前
|
SQL 存储 关系型数据库
深入理解MySQL:数据库管理与性能优化
第一章:MySQL基础 MySQL概述:简要介绍MySQL的历史、特点和应用领域
|
10天前
|
SQL 监控 关系型数据库
深入理解MySQL:核心技术与实战应用
第一章:MySQL概述 1.1 MySQL简介 简要介绍MySQL的起源、发展历程和它在现代数据库领域中的位置
|
10天前
|
存储 关系型数据库 MySQL
精通MySQL:从基础到高级应用及性能优化
第一章:MySQL入门 1.1 MySQL简介 介绍MySQL的历史、版本和开源特性
|
10天前
|
SQL 存储 关系型数据库
精通MySQL:从基础到高级运维实战
第一章:MySQL入门与基础 1.1 MySQL概述 简要介绍MySQL的历史、发展及其在数据库领域的地位
|
10天前
|
SQL 关系型数据库 MySQL
精通MySQL:从数据库管理到性能优化
第一章:MySQL入门 MySQL简介:了解MySQL的起源、发展历程以及在Web开发中的重要性
|
10天前
|
关系型数据库 MySQL 数据库
精通MySQL:数据库管理、性能优化与最佳实践
h3> 一、引言 MySQL是一个功能强大的开源关系型数据库管理系统,广泛应用于各种Web应用、企业级应用和数据分析等领域
|
2天前
|
存储 关系型数据库 MySQL
关系型数据库MySQL的MyISAM
【6月更文挑战第17天】
21 11

相关产品

  • 云数据库 RDS MySQL 版