为什么数据库读写分离能提高数据库的性能

MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中 的从数据库。

一 什么是读写分离

MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中 的从数据库。 当然,主服务器也可以提供查询服务。使用读写分离最大的作用无非是环境服务器压力。

二、读写分离的好处

1.增加冗余

2.增加了机器的处理能力

3.对于读操作为主的应用,使用读写分离是最好的场景,因为可以确保写的服务器压力更小,而读又可以接受点时间上的延迟。

三、读写分离提高性能之原因

1.物理服务器增加,负荷增加

2.主从只负责各自的写和读,极大程度的缓解X锁和S锁争用

3.从库可配置myisam引擎,提升查询性能以及节约系统开销

4.从库同步主库的数据和主库直接写还是有区别的,通过主库发送来的binlog恢复数据,但是,最重要区别在于主库向从库发送binlog是异步的,从库恢复数据也是异步的

5.读写分离适用与读远大于写的场景,如果只有一台服务器,当select很多时,update和delete会被这些select访问中的数据堵塞,等待select结束,并发性能不高。 对于写和读比例相近的应用,应该部署双主相互复制

6.可以在从库启动是增加一些参数来提高其读的性能,例如–skip-innodb、–skip-bdb、–low-priority-updates以及–delay-key-write=ALL。当然这些设置也是需要根据具体业务需求来定得,不一定能用上

7.分摊读取。假如我们有1主3从,不考虑上述1中提到的从库单方面设置,假设现在1 分钟内有10条写入,150条读取。那么,1主3从相当于共计40条写入,而读取总数没变,因此平均下来每台服务器承担了10条写入和50条读取(主库不 承担读取操作)。因此,虽然写入没变,但是读取大大分摊了,提高了系统性能。另外,当读取被分摊后,又间接提高了写入的性能。所以,总体性能提高了,说白 了就是拿机器和带宽换性能。

8.MySQL复制另外一大功能是增加冗余,提高可用性,当一台数据库服务器宕机后能通过调整另外一台从库来以最快的速度恢复服务,因此不能光看性能,也就是说1主1从也是可以的。

延伸阅读

软件库的形式

软件库通常有两种形式:静态库、动态库。

静态库是在编译时将库文件的代码与程序一起链接成一个可执行文件的库文件,因此静态库的代码会被复制到程序中。当程序运行时,静态库的代码会被加载到内存中,并与程序一起运行。由于静态库的代码是被复制到程序中的,因此程序的大小会变大,但静态库的执行速度比较快,因为它们的代码已经被编译成了可执行文件。

文章标题:为什么数据库读写分离能提高数据库的性能,发布者:E.Z,转载请注明出处:https://worktile.com/kb/p/54063

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
E.ZE.Z认证作者
上一篇 2023年6月7日
下一篇 2023年6月7日

相关推荐

  • 编程自学学什么语言

    摘要 自学编程时,选择编程语言应基于1、个人利益和目标、2、语言的适用性和需求、3、学习资源的可用性。强调个人利益和目标对编程学习的重要性:选择与个人职业规划和兴趣相匹配的编程语言,可以提高学习的动力和效率。例如,对游戏开发感兴趣的人可能会选择学习C#或C++,而希望从事网站开发的人则更倾向于Jav…

    2024年4月25日
    600
  • 编程语言有什么区别

    摘要开头段落直接回答标题所提问题,(核心观点加粗,用阿拉伯数字加“、”隔开)并对其中一点展开详细描述(总字数控制在120到200字之间); 编程语言根据不同的特性和用途有多种区别:1、语法结构、2、类型系统、3、执行模式、4、使用领域、5、性能特点、6、学习曲线。 其中,类型系统解决了编程语言如何定…

    2024年4月25日
    700
  • git项目管理工具有哪些

    Git项目管理工具有:1、GitHub;2、GitLab;3、Bitbucket;4、SourceForge;5、Beanstalk;6、Gitea。其中,这些工具在管理功能、协同合作、安全性、易用性和特性上各有不同。GitHub是全球最大的开源项目托管平台。它拥有强大的协同功能,能够让全球的开发者…

    2023年7月11日
    1.8K00
  • 办公室oa

    工作效率和团队协作的关键在于高效的办公室自动化系统(Office Automation,简称OA)。如今企业运用这一系统促进文档管理、信息流通以及内部沟通。1、办公室自动化系统对公司的重要性突出;2、OA系统功能繁杂且多样化;3、企业对于办公室自动化系统需求日益上升。例如,OA系统可以提供一个统一的…

    2024年1月11日
    26700
  • oa是什么船公司

    OA通常不是指特定的船运公司,而是指”Ocean Alliance”,这是全球最大的船运联盟之一,由几个领先的航运公司合作组成。核心成员包括1、CMA CGM集团、2、中国远洋海运集团(COSCO)、3、台湾的长荣海运(Evergreen)、4、香港的东方海外货柜航运(OOC…

    2024年1月11日
    1.1K00
  • 文档协同办公软件有哪些

    文档协同办公软件有:一、石墨文档;二、简道云;三、Coggle;四、金山文档;五、飞书。石墨文档是一款文档编辑软件,分享的文档支持多人实时协作。页面设计我清清爽爽,没有太多花里胡哨的设计。 一、石墨文档 石墨文档是一款文档编辑软件,分享的文档支持多人实时协作。页面设计我也比较喜欢,清清爽爽,没有太多…

    2023年4月27日
    62500
  • 小程序的开发与管理怎么弄

    在开发与管理小程序的过程中,存在几个关键步骤:选择合适的开发平台、设计用户交互体验、开发小程序代码、遵守市场审核规范、进行测试与修正、上线后进行持续运维和内容更新。在这之中,设计用户交互体验尤为关键,它决定了用户对小程序的第一印象和持续使用意愿。设计环节包括构建清晰的导航流、优化按钮和图标的可点击性…

    2024年1月9日
    37900
  • 为什么大多数编程语言中的数组都是从0开始计数的

    大多数编程语言中的数组都是从0开始计数的原因是:1、历史原因;2、减少CPU指令运算;3、物理内存的地址是从0开始的。历史原因指语言出现顺序从早到晚C、Java、JavaScript。C语言数组下标是从0开始->Java也是->JavaScript也是。降低额外的学习和理解成本。

    2023年1月27日
    1.0K00
  • 为什么vscode没有变色

    Visual Studio Code (VSCode) 没有代码高亮变色可能是因为缺少相应语言的扩展插件、语言支持未启用、文件类型未正确识别或者是用户设置了自定义的主题配置。 其中最常见的原因是缺少对应语言的扩展插件。VSCode 通过插件提供对各种编程语言的支持,包括语法高亮、代码片段、智能感知等…

    2024年4月3日
    11100
  • oa待办设计

    标题:OA待办设计的实用原则与方法 摘要 OA系统中的待办事项清单是提高工作效率的关键组成部分。在设计此功能时,*关注用户体验、兼顾功能丰富性和界面清晰性、注重待办项的动态跟踪* 是主要考量。包括1、易用性的优化、2、信息分类机制、3、流程动态提醒功能 在内的多元素,共同构筑起高效OA待办体系。其中…

    2024年1月16日
    28300

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部