- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MySQL基础技能与原理
——高级应用
MySQL DBA Team
彭立勋()
内容概要
• 6. MySQL数据库同步方案
• 7. MySQL与应用程序的优化
• 8. MySQL管理基础
• 9. 网站常见错误分析
• 10. MySQL故障案例
MySQL数据库同步方案
• Trigger同步方案(Otter)
• Log同步方案(Erosa)
• 自带Replication同步方案
Trigger同步方案
• Otter采用Trigger方式进行同步。基本原理是为每张要同步的表加上一个触发
器,表上增删改都会触发Trigger把主键记录到一张同步表,同步程序读取同步
表的主键和修改类型,到目标表去执行相同的操作,保证最终一致。
• 优点:安全可靠,不会因为日志格式变化或数据库本身的机制变动带来同步程
序的大改动。
• 缺点:对数据库入侵大,需要为每张表建立Trigger ,并且在数据库建立存储过
程,执行存储过程和触发器会带来一定的数据库压力。
Log同步方案
• Erosa采用解析日志的方式进行同步。通过解析Oracle的RedoLog或MySQL的
BinLog,获取在数据库上执行的SQL及其顺序,分发到目标数据库去执行一
遍,以获得最终一致。
• 优点:对数据库入侵小,可以将日志拷贝到异地分析,对数据库本身不会增
加压力。
• 缺点:对日志格式依赖大,日志格式发生变动则同步程序需要进行较大改
动。
Replication同步方案
• MySQL 自带Replication复制方案,Oracle也有基于块复制的Stanf by方案。
MySQL通过将执行的增删改SQL记录到日志,传输到备机再执行一遍保证最终
一致性。可以设置日志格式为ROW (按行记录),Statement (按SQL记录),
MIXED (混合式,让MySQL决定每次记录用哪个格式),DDL全部通过
Statement方式记录。
• 优点:MySQL 自带,无需第三方工具,部署方便,MySQL 自带丰富的参数可以
实现各种复制方案,包括双Master,级联Slave等。
• 缺点:无法实现多源复制,复制位置丢失很难恢复复制。
MySQL与应用程序的优化
• 预处理与绑定变量
• 连接池设置及影响
• 应用程序实现JOIN
预处理与绑定变量
• PREPARE语句:SET@sql1=‘xxx’; PREPARE stmt1 FROM @sql1;
• 变量用问号代替(绑定变量)。
• 作用:将SQL预先解析,在一个Session 内再次使用此语句时不再重新解
析。
• EXECUTE语句:EXECUTE stmt1 USING @val1,@val2;
• 作用:将绑定变量赋予具体的值并且执行。
• DEALLOCATE语句:DEALLOCATE PREPARE stmt1;
• 作用:销毁一个预解析SQL,释放资源。
• 为何使用绑定绑定变量?
• 因为绑定变量比直接传值更安全,尤其是拼接SQL非常容易被注入攻击。
同时绑定变量也可以提高一点效率。
• 为何使用预处理,尤其在存储过程?
• 因为预处理可以避免SQL 的反复解析,尤其是执行速度快的小SQL,解析时
间甚至可能超过执行时间,采用预处理可以显著提高性能。
连接池设置及影响
• MySQL如何处理连接?
• 每次客户端向数据库服务器请求一个连接,服务器根据用户名密码在已有
连接内查找一个相同配置的连接,分配给请求。如果找不到,则数据库分配
一个新连接给当前请求。
• 分配新连接做哪些工作?
• MySQL新开一个连接,就会创建一个新的mysql结构体,其中包括
Join_buffer 、Sort_buffer和一个Session变量存储数组。
• 如
您可能关注的文档
最近下载
- 总工办工作总结.pptx VIP
- 公共建筑工程施工设计方案.doc VIP
- 半导体光催化基础第二章半导体表面与表态-第一讲.ppt VIP
- 大学生就业指导(第4版)PPT全套完整教学课件.pptx VIP
- 《简单相信,傻傻坚持》-中职语文高二同步课件精选(高教版2023职业模块).pptx VIP
- 《环境影响评价》全套教学课件.pptx
- 建设工程招投标与合同管理:建设工程施工合同PPT教学课件.pptx VIP
- 《电子信息工程导论》03 计算之芯.pptx VIP
- 第一单元万物互联的奥秘第一节互联到物联+课件+2025-2026学年川教版(2024)+初中信息科技+八年级上册.pptx VIP
- 最新最全四年级《道德与法治》上册 .pdf VIP
文档评论(0)