一文详解:高性能mysql第五版

1、上下文切换上下文定义cpu发生进程或者线程切换时,所依赖的数据集合,比如一个函数有外部变量,函数运行时,必须获取外部变量,这些变量值的集合就是上下文。引发问题对于CPU密集型任务,多线程处理会发生上下文切换,会影响到执行速度,如果时IO密集型,多线程技术优点尽显。如何减少上下文切换无锁并发编程,锁的获取与释放会发生上下文切换,多线程时会影响效率。无锁并发编程就是将数据分块,每个线程处理各自模块。比如LongAdder中部分代码。CAS算法,并发编程时通过CAS算法更新数据,而不必加锁。如
摘要由CSDN通过智能技术生成

1、上下文切换

上下文定义

cpu发生进程或者线程切换时,所依赖的数据集合,比如一个函数有外部变量,函数运行时,必须获取外部变量,这些变量值的集合就是上下文。

引发问题

对于CPU密集型任务,多线程处理会发生上下文切换,会影响到执行速度,如果时IO密集型,多线程技术优点尽显。

如何减少上下文切换
  • 无锁并发编程,锁的获取与释放会发生上下文切换,多线程时会影响效率。无锁并发编程就是将数据分块,每个线程处理各自模块。比如LongAdder中部分代码。
  • CAS算法,并发编程时通过CAS算法更新数据,而不必加锁。如Java的atomic包下的工具类。
  • 使用最少线程,减少不必要的线程创建,自定义线程池。
  • 使用协程,在单线程中维护多任务调度,处理任务间切换,Golang对于协程的使用很强大。

2、死锁

死锁定义

死锁是进程死锁的简称,是由Dijkstra于1965年研究银行家算法时首先提出来的。
系统发生死锁现象不仅浪费大量的系统资源,甚至导致整个系统崩溃,带来灾难性后果。

产生死锁原因
  • 系统资源不足
  • 进程推进顺序不当
  • 资源分
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《高性能MySQL》汇聚了著名MySQL 专家在实践中构建大型系统的多年宝贵经验,指导你如何使用MySQLTF发出快速可靠的系统。的第二着眼于健壮性、安全性及数据完整性,涵盖了 MySQL性能的细微之处。   《高性能MYSQL》指导你深入MYSQL的高级技术,充分利用MySQL的全部强大能力。你将学到如何设计 MySQL的表、索引、查询以及可以将性能发挥到极致的高级特性。另外,你还会在MySQL服务器、操作系统、硬件调优方面得到具体的指导,以充分挖掘出它们的内在潜力。实用又安全的高性能之路就是通过复制来扩展你现有的应用系统,其中也包含了负载平衡、高可用性和故障恢复等技术。   第二针对第一作了彻底的修订,极大地扩充了原有内容,对所有领域进行了更深入的论述。新增的主要内容包括:   ·始终强调性能和可靠性。   ·全面论及各数据引擎,并深入讲解InnoDB的优化方法。   ·介绍MySQL 5.0和5.1的新特性,例如存储过程、分块数据库、触发器和视图。   ·具体细致地讨论如何使用MySQL构建出一个大型的、高伸缩性的系统。   ·可用于备份和复制的新方法。   ·对高级查询功能特性进行优化,例如全检索。   ·4篇全新的附录。   其他一些章节内容包括基准测试、性能分析、备份和安全,并介绍了一些工具和技术,帮你测量、监控和管NMySQL实例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值