- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MySQL基础技能与原理――高级应用-LinuxToneOrg
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变量存储数组。 如果连接数过多会怎么样? 如果连接MySQL的线程太多,那么每个线程分配到的join_buffer+sort_buffer总量就会很大,占用大量内存。 如何设置连接池? 建议最小值和最大值差距不要太大,避免连接反复的创建和释放,带来CPU开销。如果连接数一直比较平稳的应用,则最小值和最大值在平均线附近设置即可。如果连接数长期较高,则最小值也设置大一些。如果连接数长期较低,则最大值偏小设置。 应用程序实现JOIN 如果需要跨主机进行JOIN,跨应用进行JOIN,或者数据库不能获得较好的执行计划,都可以自己通过程序来实现JOIN。 例如:SELECT a.*,b.* FROM a,b WHERE a.col1=b.col1 AND a.col2 10 ORDER BY a.col2; 可以利用程序实现,先SELECT * FROM a WHERE a.col210 ORDER BY a.col2;--(1) 利用(1)的结果集,做循环,SELECT * FROM b WHERE b.col1=a.col1; 这样可以避免排序,可以在
您可能关注的文档
- AutodeskMoldflow关于流痕问题的成因探寻之三.PDF
- AN-6036TCFSHDMI04应用程式配置指引-ONSemiconductor.PDF
- AXR二线制电磁流量计一体型电磁流量计-北京电机(中国)有限公司.PDF
- BALIS联合检索-北京体育大学图书馆.PPT
- BERGHOFF木座及木制菜板生产标准.DOC
- Belllab-相宇企业有限公司.PDF
- CAENA1钢料模具产生裂纹原因分析-中国应急分析测试平台.PDF
- Bt水稻田重要非靶标节肢动物暴露于Cry2Aa蛋白的-应用生态学报.PDF
- BOPP复合型预涂膜使用说明书.DOC
- C2风格软件构架的演化研究-复旦大学软件工程试验室.PDF
- MZY煤灰分测定仪智能采集系统操作教程.DOC
- mm宽带相参雷达天线成型制造技术-易迪拓培训.PDF
- N80油套管钢应力状态下的CO2腐蚀行为研究InvestigationonCO2.PDF
- NaOH-Na2S熔盐法处理分银渣.PDF
- NEWSLETTERNo7日本液体清澄化技术工业会.PDF
- NF354微电脑控温高温炉(灰化炉)使用说明.PDF
- NJGDVI-力学学报.PDF
- nF193StandardReductionPotentials标准还原电位Definitionand.PPT
- miR3979在水稻砷耐受性中的作用-浙江农林大学学报.PDF
- NYT1712009-中国绿色食品发展中心.DOC
文档评论(0)