mysql总结3(高性能MySQL笔记)

10 复制

mysql支持基于行的复制和基于语句的复制,这两种方式都是通过在主库中记录二进制日志,然后在备库中重放日志的方式来实现数据的异步复制。

复制框架对于主库的开销:增加二进制日志的存储,备库从主库读取日志的网络开销等。

复制的目的:数据分布存储、达到负载均衡、备份、高可用性和故障切换、服务器升级测试等

复制的过程:首先,主库上执行sql,改变主库数据内容,然后根据sql提交的顺序,写主库日志,写完后,主库commit;其次,备库启动io线程,去主库请求数据,主库开启一个线程,响应备库的请求,并将数据发出去,备库接收到数据,放入中继日志中;最后,备库启动sql线程从中继日志中读取数据,执行,将数据放入备库中。

启动复制需要在主备库中进行一些账号以及权限的配置,如果主库已经运行了一段时间,然后使用一台新的备库机器对主库进行复制,情况会有点复杂,需要解决主库未存放日志的一些数据的复制。

基于行的复制和基于语句的复制

基于语句的复制是复制每次主库执行的sql,然后在备库中重新执行一遍,但是有些情况使这种方式无法完成数据的备份,如current_user,now(),存储过程与触发器对表的修改等。

基于行的复制是将改动的数据行存入日志,然后在备库中重新更新一遍,这种方式一般不会丢失数据,有些情况执行效率也很高(如汇总表计算),但有时需要传输很多的数据(如基于表的修改操作)。

基于语句的复制能够解决一些基于行无法解决的问题,如修改schema。

复制拓扑结构:

一主多备,可以利用多备提供高性能读,可以利用多备进行容错

主主复制,可以同时提高读写性能,但主主之间的写会造成问题

主主复制,但限制同一时间只能一主写,提高读性能,写的库可以进行切换,提供故障切换功能,提供热备份的功能。

分发主库

树形主备

复制发生的环境:选择性复制,将不同的读分散到不同的备份机器上去;分离不同类型的功能(OLTP和OLAP),利用对数据实时性要求不一样,对数据的使用方式不一样的方式,使用主库提供OLTP功能,备库提供OLAP功能;数据归档,将删除等操作隔离开,在备库中过滤掉,只记录数据;增加全文索引等在一台机器上难以同时实现的功能;在发生异常等情况,创建日志服务器使用。

复制的容量规划:读与写的增大与复制主备服务器负载变化之间的关系,备库与主库之间数据延迟的处理,主备之间冗余容量的规划。

主备服务器数据监控,延迟时间监控,一致性监控,重新从主库同步异常数据





11 可扩展的mysql

可扩展性就是增加资源后获得性能(容量和速度)提升的能力

可扩展性定律(USL):线性扩展的偏差可通过两个因素进行建模:无法并发执行的工作和需要交互进行的另外一部分工作。无法并发进行的工作导致增加新的资源到一定程度后,系统运行性能无法再得到有效提升,需要交互的工作在增加资源后,交互部分需要更多的资源来完成,导致资源增加到一定程度后,交互部分增加的工作比新增的资源带来的性能还要高。

USL表明,设计可扩展性系统时,应该尽量减少串行工作,降低交互量。

可扩展性可以提高机器性能获得,也可以通过增加机器获得。

如何通过增加机器获得mysql的性能?简单的说,就是设计架构,能够方便地将数据分布到多台机器上去。

数据分布到多台机器,有两个主要问题需要解决:1 如何快速决定一行记录应该插入哪个机器;2 如何快速决定去哪一台机器查找相关数据。

数据分布到多台机器上的方式:按功能,将不同功能的数据分布到不同机器;对于某些功能的数据,一台机器已经难以处理,可以对这部分数据按逻辑进行分片,再次分散到不同机器上去;对于分片,分片键的选择是关键,分区键要根据实际情况,尽量减少跨区查询,并尽量提高性能,如果有些数据跨区查询不可避免,可以采用在应用层上进行解决。

数据分片时,节点,数据库,表,分片之间的包含关系。

mysql对于高性能机器的应用方式

mysql的集群扩展机制:ndb cluster、clustrix、scalebase

提高性能的另一个方面是对历史数据进行归档,将活跃数据与非活跃数据进行分离,从而提高性能。

多服务器之间的负载均衡处理:直接连接方式,中间件方式,一主多备方式


12 高可用性

高可用性可从两方面着手:提高可用时间与降低故障恢复时间

提高可用时间可以从消除单点故障影响等方面

降低故障恢复时间可以从故障转移,恢复流程制定等方面着手。



13 应用层优化

缓存的开销与性能提升

缓存的层级:浏览器缓存,CDN缓存(squid),应用程序缓存,数据库缓存

应用层缓存分类:线程缓存,本地线程共享缓存,分布式缓存,磁盘缓存等

缓存失效方式:失效时间,写失效与写更新,读失效,

缓存失效与版本控制的关系



14 备份与恢复

备份与复制的区别

热备份、冷备份、暖备份



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值