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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 【最后一课】【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。还有一些原因,要具体情况具体分析。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
8月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
缓存 关系型数据库 MySQL
MySQL索引策略与查询性能调优实战
在实际应用中,需要根据具体的业务需求和查询模式,综合运用索引策略和查询性能调优方法,不断地测试和优化,以提高MySQL数据库的查询性能。
647 66
|
6月前
|
存储 SQL 关系型数据库
MySQL 核心知识与性能优化全解析
我整理的这份内容涵盖了 MySQL 诸多核心知识。包括查询语句的书写与执行顺序,多表查询的连接方式及内、外连接的区别。还讲了 CHAR 和 VARCHAR 的差异,索引的类型、底层结构、聚簇与非聚簇之分,以及回表查询、覆盖索引、左前缀原则和索引失效情形,还有建索引的取舍。对比了 MyISAM 和 InnoDB 存储引擎的不同,提及性能优化的多方面方法,以及超大分页处理、慢查询定位与分析等,最后提到了锁和分库分表可参考相关资料。
159 0
|
前端开发 关系型数据库 MySQL
PHP与MySQL动态网站开发实战指南####
【10月更文挑战第21天】 本文将深入浅出地探讨如何使用PHP与MySQL构建一个动态网站,从环境搭建到项目部署,全程实战演示。无论你是编程新手还是希望巩固Web开发技能的老手,都能在这篇文章中找到实用的技巧和启发。我们将一起探索如何通过PHP处理用户请求,利用MySQL存储数据,并最终呈现动态内容给用户,打造属于自己的在线平台。 ####
610 0
|
SQL 存储 关系型数据库
MySQL秘籍之索引与查询优化实战指南
最左前缀原则。不冗余原则。最大选择性原则。所谓前缀索引,说白了就是对文本的前几个字符建立索引(具体是几个字符在建立索引时去指定),比如以产品名称的前 10 位来建索引,这样建立起来的索引更小,查询效率更快!
410 22
 MySQL秘籍之索引与查询优化实战指南
|
安全 关系型数据库 MySQL
PHP与MySQL动态网站开发实战指南####
——深入探索LAMP栈下的高效数据交互与处理技巧 ####
|
关系型数据库 MySQL PHP
PHP与MySQL动态网站开发实战指南####
深入探索PHP与MySQL的协同工作机制,本文旨在通过一系列实战案例,揭示构建高效、稳定且用户友好的动态网站的秘诀。从环境搭建到数据交互,再到最佳实践分享,本文为开发者提供了一条清晰的学习路径,助力其在LAMP(Linux, Apache, MySQL, PHP/Perl/Python)栈上实现技术飞跃。 ####
|
存储 缓存 负载均衡
mysql的性能优化
在数据库设计中,应选择合适的存储引擎(如MyISAM或InnoDB)、字段类型(如char、varchar、tinyint),并遵循范式(1NF、2NF、3NF)。功能上,可以通过索引优化、缓存和分库分表来提升性能。架构上,采用主从复制、读写分离和负载均衡可进一步提高系统稳定性和扩展性。
162 9
|
关系型数据库 MySQL PHP
PHP与MySQL动态网站开发实战指南####
本文深入探讨了PHP与MySQL在动态网站开发中的应用实践,通过具体案例解析如何高效结合这两大技术构建数据驱动的Web应用。文章将涵盖环境搭建、基础语法回顾、数据库设计与操作、用户注册与登录系统实现等关键步骤,旨在为开发者提供一个从零到一的项目实战路径,展示PHP与MySQL协同工作的强大能力。 ####

相关产品

  • 云数据库 RDS MySQL 版
  • 推荐镜像

    更多