位置: 编程技术 - 正文

MySQL优化之缓存优化(mysql缓冲区)

编辑:rootadmin

推荐整理分享MySQL优化之缓存优化(mysql缓冲区),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql8 缓存,mysql的缓存,mysql缓冲区,mysql缓冲区,mysql缓冲和缓存设置详解,mysql 缓存优化,mysql 缓存优化,mysql 缓存优化,内容如对您有帮助,希望把文章链接给更多的朋友!

高兴的是有博友mark了我的文章。我知道mark之后,很少会再来继续关注的。但是从侧面说明了在博友点开博客的同时,他感觉这篇博客是有价值的,是能够弥补他的知识欠缺。一篇博客最重要的是对自己有用,如果再对别人有用,那是最好的结果。我坚持写博客的目的是为了当自己遗忘知识点的时候,能够最快的找到靠谱的解决方案。当自己的归纳的知识,再记起来就会遗忘的慢一点,等时间久了,这部分知识终于化成了自己脱口而出的话,那就再也不怕遗忘了。这篇博客将继续讲MySQL的内容,这篇讲缓存优化,讲的过程也是我学习的过程。

先来看下我们mysql的版本,我的mac 上装的版本是5.7的,很多内容都已经变化掉了。这里讲的主要是5.6的版本。

一、MySQL缓存分类

MySQL的优化指的是一个很大的系统,面试的时候我之前是从sql的语句优化方面去说的,这种优化也有作用,不过是从逻辑方面去优化。但是当所有的逻辑层面已经无可优化,所有的索引都已经加好,表结构也设计的合理,但是遇到高并发的时候,为什么MySQL还是扛不住呢。当然可以通过其他的方面去缓解MySQL的压力,这里我们暂且不谈。对于MySQL而言,我们要尽最大的可能去压榨机器的性能,让所有的计算资源都不浪费,都可以为我们服务。MySQL运行在服务器上,这里特指Linux服务器。那么服务器的硬盘、CPU,内存,网络都有影响到MySQL的性能。MySQl是非常耗费内存的,线上服务器的MySQL内存要吃到%左右,内存过小,其他的优化空间其实很小。

另外连接(connection)也是影响MySQL性能的重要一方面。MySQL客户机与MySQL服务器之间的连接是MySQL客户机与MySQL服务器反复握手的结果。每次'握手'都经历身份验证、权限验证等环节,握手需要占用一定的网络资源和MySQL服务器内存资源。

不得不提的是锁竞争,对于并发性能要求比较高的数据库而言,如果存在激烈的锁竞争,对数据库的性能将是很大的打击。锁竞争会明显的增加线程上下文切换的开销,这些开销都与预期的需求无关。

二、show status 与 show variables

在MySQL系列的前几篇博客,会经常的看到这些命令,那么我们分别看下,这两个命令给MySQL系统管理员展示的是什么信息:

show status

MySQL服务运行的时候,MySQL服务实例的状态信息是动态的。用该命令可以显示当前MySQL服务器连接的会话状态变量信息。默认情况下变量名首字母大写。

show variables

show variables 用来显示MySQL 服务实例的各种系统变量(如:全局系统变量,会话系统变量,静态变量),这些变量包含MySQL编译时参数的默认值,或者是my.cnf中设置的参数值。系统变量或者参数是一个静态的概念,默认情况下系统变量名都是小写字母。

使用MySQL命令show status 或者 show session status ,可以查看当前MySQL 服务器连接的会话变量信息,会话状态的变量值对当前的MySQL客户机有效,例如:Opened_tables、Opened_table_definitions状态变量。

缓存机制

缓存之所以有效,主要是因为程序运行时对内存或者外存的访问呈现局部性特征,局部性特征为空间局部性和时间局部性两方面。时间局部性是指刚刚访问过的数据近期可能再次被访问,空间局部性是指,某个位置被访问后,其相邻的位置的数据很可能被访问到。而MySQL的缓存机制就是把刚刚访问的数据(时间局部性)以及未来即将访问到的数据(空间局部性)保存到缓存中,甚至是高速缓存中。从而提高I/O效率。

按照缓存读写功能的不同,MySQL将缓存分为Buffer缓存和Cache缓存。

MySQL优化之缓存优化(mysql缓冲区)

Buffer缓存。由于硬盘的写入速度过慢,或者频繁的I/O,对于硬盘来说是极大的效率浪费。那么可以等到缓存中储存一定量的数据之后,一次性的写入到硬盘中。Buffer 缓存主要用于写数据,提升I/O性能。

Cache 缓存。 Cache 缓存一般是一些访问频繁但是变更较少的数据,如果Cache缓存已经存储满,则启用LRU算法,进行数据淘汰。淘汰掉最远未使用的数据,从而开辟新的存储空间。不过对于特大型的网站,依靠这种策略很难缓解高频率的读请求,一般会把访问非常频繁的数据静态化,直接由nginx返还给用户。程序和数据库I/O设备交互的越少,则效率越高。

三、MySQL 超时

在使用MySQL的过程中,可能会出现各种超时(timeout)异常,典型的有连接超时、锁等待等。

查看超时时间的类型有哪些:

1、连接超时(connect_timeout)

connect_timeout默认为s,获取MySQL连接是客户机与服务器之间握手的结果,并且是多次握手的结果,每次握手,除了验证账户名和身份信息外,还需要验证主机、域名解析。如果客户机和服务器之间存在网络故障,可以通过connect_timeout参数来设置,防止它们之间重复握手。

interactive_timeout指的是交互式的终端,在命令行中输入的这种。超过了其设置的默认值就会断开。

wait_timeout指的是非交互式的终端,比如PHP实例化的Mysql连接,一直占用着,超过了这个参数设置的值,就会自动断开。

net_write_timeout MySQL服务器产生一个很大的数据集,MySQL客户机在该值设置的时间内不能接受完毕,则会断开连接。

net_read_timeout MySQL客户机读取了一个很大的数据,在设置值内不能读取完毕,则会自动断开连接。

InnoDB锁等待超时

InnoDB 的锁等待时间默认为s,设置行级锁锁等待的值,当出现锁等待的时候,等待时长超过该值会导致锁等待的SQL回滚(不是整个事务回滚)。如果希望整个事务回滚,需要开启innodb_rollback_on_timeout参数。

innodb_rollback_on_timeout设置为true 后,遇到事务超时,会回滚整个事务的操作。

复制连接超时

当主从配置是,从服务器(slave)从主服务器(master)读取二进制日志失败后,从服务器会等待 slave_net_timeout 后,从新从master机拉去二进制日志。可以设置成s.

这部分总结,应该是周日晚上就该整理好的,结果拖到了今天。后面的计划又要后延了,拖延症真严重。

MySQL优化之连接优化 上文MySQL优化之缓存优化这篇文章中提到了一个很重要的概念,就是showvariables是用来表示系统编译或者配置在my.cnf中的变量值。而showstatus则称之为状态

MySQL优化之缓存优化(续) MySQL内部处处皆缓存,等什么时候看了MySQL的源码,再来详细的分析缓存的是如何利用的。这部分主要将各种显式的缓存优化:查询缓存优化结果集缓存

详解Mysql主从同步配置实战 1、Introduction之前写过一篇文章:Mysql主从同步的原理。相信看过这篇文章的童鞋,都摩拳擦掌,跃跃一试了吧?今天我们就来一次mysql主从同步实战!2

标签: mysql缓冲区

本文链接地址:https://www.jiuchutong.com/biancheng/349916.html 转载请保留说明!

上一篇:MySQL优化之InnoDB优化(mysql innode)

下一篇:MySQL优化之连接优化(mysql 连接语句)

  • 房地产开发企业预缴增值税
  • 全额抵扣的发票怎么申报增值税
  • 哪些产品享受教育优惠
  • 生产企业出口退税流程
  • 分期付款发票开具
  • 机械租赁属于什么分类
  • 水利基金的计税税率6
  • 税务信用级别为m级
  • 长期债权投资是什么科目借贷
  • 季度申报所得税费用怎么做
  • 跨区预缴增值税怎么做账
  • 当月开票当月收款
  • 小规模纳税人开了3%的专票还能享受1%
  • 以前漏记的成本怎么处理
  • 以前年度多计成本,本年度冲减成本
  • 以前月度费用当期怎么入账合适?
  • 对公付款没有发票
  • 应征进口关税的公式
  • 增值税发票本月没用完可以下月用吗
  • 小规模纳税人购入货物收到增值税专用发票
  • 营改增后还有消费税吗
  • 权益净利率计算公式推导
  • 房地产开发企业增值税怎么算
  • 心绞痛的早期症状表现有哪些
  • php nsq
  • 抵债资产账务处理程序
  • 被公司辞退有钱吗
  • 企业如何申请进出口资质
  • 固定资产清理科目余额结转哪里
  • php框架yii
  • 现金流量表补充资料怎么理解
  • 国有企业收到财政补助如何做账
  • 垃圾清运费属于什么服务
  • php图片代码
  • 小微企业资金数额
  • c++如何给指针赋值
  • vue3.0动态路由
  • js快速入门教程
  • 固定资产毁损应该填制什么凭证
  • 如何网上添加办税员上海
  • 新购入的汽车需要年检吗
  • phpcms数据库文件
  • 国有土地租赁合同的性质
  • 公司给部分员工长期停工怎么办
  • 企业所有者权益是什么意思
  • 每月随工资发放的房补,本月至今未发
  • 劳务报酬所得与工资薪金所得纳税的区别
  • 员工报销货款会计分录怎么写
  • 资产减值损失是什么意思
  • 汇算清缴 房租
  • 电子承兑背书了能撤回吗
  • 关于赠品的财务处理
  • 企业营改增税率是多少
  • 汇算清缴期间费用福利费填哪里
  • 应付账款周转率越大说明什么
  • 员工意外险的费用怎么算
  • 票折费用是什么意思
  • 应收账款转让会计分录 未实际收到对价
  • 小规模纳税人的增值税账务处理
  • sqlserver多表关联查询
  • Mac OS10.11下mysql5.7.12 安装配置方法图文教程
  • mmc无法创建管理单元怎么办win11
  • winxp系统和win7系统有什么区别
  • ubuntu 2021
  • apache禁用trace方法
  • ubuntu怎么安装程序
  • windows8的ie浏览器在哪
  • linux装完显卡驱动分辨率低
  • Android Eclipse 项目报错,但没有显示具体错的代码位置
  • JavaScript获取元素
  • 欢迎使用天翼智能网关
  • android 属性动画改变view大小
  • 电子税务局浏览器版本太低
  • 国税怎么打印发票
  • 西安经开税务局电话号码
  • 浙江省国家电子税务局官网登录
  • 中国体育体制改革的特点
  • 机场停车票怎么取得
  • 税务迁出需要哪些手续2020年
  • 航天金税怎么导入发票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设