Mysql性能提升方案对比全套.docxVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

Mysql性能提升方案对比

在高并发环境中,需要我们提供持续稳定的数据库解决方案,因此解决方案需要包括以下特点:

1.高可用(热备)

解决单节点失效,可以动态路由到其他可用节点问题。

2.读写分离,主写,从读,从节点做负载均衡,(主从复制)

解决读写请求的分发,主写,从读,一定程度上负载了读写的压力。(用于多读的项目场景)

3.多主之间做负载均衡,多主复制

解决所有sql请求可以负载路由到不同的mysql服务。

4.分库分表

解决数据存储,避免所有数据存在一个库一张表中,解决单表单库数据过大。

5.分区

解决数据存储,避免所有数据存在一个库一张表中,解决单表数据过大。

可用的解决方案,以及优缺点对比:

1.MysqlRouter(innodbcluster)

①Innerdbclustoer一部分,可以实现热备(read-write:首个可用,其他备用)、请求负载(read-only:轮询)

②read-only:可以对后端服务进行故障转移

③2.1.x单个节点连接限制在500以内,8.0版本官网说在5000+

④部署在应用服务器,可以多级部署,暂时没有做router的高可用

⑤增删节点只能重启。

⑥不对sql进行拆包检查,不会过滤sql,做对请求进行路由。

我们可以使用其read-only:轮询模式,对请求负载均衡。

2.MySQLProxy

官方不建议使用在生产环境,并且目前已经不提供下载插件的链接。(不建议使用)

3.Ndbcluster(mysqlcluster)

⑦分布式存储引擎,可以由多个NDBCluster存储引擎组成集群分别存放整体数据的一部分。

⑧和Innodb一样,支持事务,内存数据库。

⑨可以和mysqld分开存在于独立的主机上,然后通过网络和mysqld通信交互。

⑩内存需求量巨大:新版本索引以及被索引的数据必须存放在内存中,老版本所有数据和索引必须存在于内存中。

?不支持创建临时表(createtemporarytable)

?不支持基于行的二进制异步复制(row和maxed),只支持同步复制,效率更快。

?不支持分布式事务XA,多join查询会变慢,单表查询会非常快。

?只支持读已提交事务隔离级别。默认是可重复读。

?只是对简单查询提升速度,写入也会有速度提升,因为放在内存中检索,考虑事务隔离级别带来的问题。(幻读)默认隔离级别是有效解决了幻读问题。

?多个库数据一致,同时对多个库进行写入,然后放入内存中读取。

?传说中的高并发数据库环境,本身多个数据库节点服务,支持失效转移,热备功能。

原则上只是加快了查询性能,但是额外的内存和机器都必须加大。

可以权衡利弊选择,特别是以后大数据量优化考虑。

4.Mycat

①支持多个分表模式,支持多租户,主从模式(读写分离、热备),多库之间二进制复制数据。

②但是根据项目需要改一些业务代码,来适应Mycatl的分表规则,二次开发工作比较多,并且以后都要按着mycat的规则走。

③热备、集群方面都有解决方案。

如果能容忍修改业务代码,也可以考虑,由于是java项目使用多路复用线程模型,会受到硬件和jvm性能的限制。

5.Mysql官方分表

④表存储引擎为merge,MyISAM表以逻辑方式组合在一起,并作为1个对象引用它们。

⑤通常把多个MyISAM表的结果union起来组成merge存储引擎返回结果。

6.Mysql分区

支持4种分区模式和子分区,解决数据存储一个区的问题。

项目中根据时间分区,可以使用。

7.多主模式,解决多写,多读(多主之间异步复制),负载均衡,热备问题

Haproxy

①软件负载均衡,多种路由规则,故障转移,4层7层代理,支持4万+并发。

②可以使用keepalived实现热备功能。

③硬件负载均衡,最稳定并发最高的负载方案,配置维护繁琐,支支持4层代理。

④可以使用keepalived实现热备功能。

Nginx

⑤新版本支持mysql负载均衡,新版本支持4层7层代理,支持上万并发连接请求。

⑥可以使用keepalived实现热备功能

可以使用任意一种方案,目前使用haproxy没有问题。

8.Mysqlgroupreplication

①把一组服务,多个mysql服务配置在一个组中,一个事务的提交需要经过组内大多数节点决议,来决定该事务是否可以提交。

②可以维护各个节点的数据最终一致性。

③如果两个请求对两个节点中同一行数据进行修改操作,只有第一个请求的事务会成功,其他会失败,高并发中会有问题。

④集群个数是n+1个,必须满足大多数,否则事务会一致阻塞。

⑤节点数最多9个,配置为奇数个,否则就会

文档评论(0)

137****1470 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档