位置: 编程技术 - 正文

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 连接语句)

  • 厂房出租开发票怎么交税
  • 技术服务收入属于劳务报酬所得吗
  • 怎么算毛利润计算公式
  • 公司公积金缴纳比例一般来说是多少?
  • 一次性分红到期还本的会计分录
  • 工会费个税税前扣除标准
  • 空调损坏
  • 个人股权转让协议书范本合同
  • 资本公积的核算内容不包括
  • 不能抵扣的进项发票怎么做分录
  • 发票进项转出账务怎么做
  • 教育费附加抵免政策
  • 出口退税退的是进项税还是销项税
  • 发票一直显示在报送中
  • 受让无形资产是什么意思
  • 存货周转天数计算公式是360还是365
  • 资产总额小于所有者权益合计
  • 产品核算会计业务流程
  • 小规模纳税人可以开专票吗
  • 公司会议案例
  • 汇算清缴补缴税款分录小企业会计
  • 土地 补偿
  • win7为什么现在不能用了
  • 民办非企业的税金及附加放在哪个科目
  • 工程施工广告牌
  • win7纯净版本
  • 融资租赁的两种基本形式
  • 增量预算对应什么预算
  • zend framework手册
  • 房产税和城镇土地使用税需要计提吗
  • nvm for window
  • [九]深度学习Pytorch-transforms图像增强(剪裁、翻转、旋转)
  • 计算md5值命令
  • 应收账款科目有哪些类别
  • python兑换美元
  • 长期借款的核算分为哪三个阶段
  • 网络购发票怎么读入
  • 原财政补助结余对应新账
  • 织梦使用手册
  • sql死锁的原因及解决方法
  • 企业分红所得需要缴纳企业所得税吗
  • 个体户超过定额,税率按核定税率吗
  • sql server 2005如何使用
  • 农民工专户个税怎么申报
  • 收到发票并支付货款怎么做账
  • 新公司成立的文案
  • 保险公司报销修车流程
  • 预付账款的会计编码是多少?
  • 成本类账户期末如有余额在借方
  • 固定资产采购需要走什么流程
  • 税控技术服务费会计分录
  • 公司主要产品
  • 公司账户转账给个人要交税吗
  • 出售投资性房地产的收入计入什么科目
  • 独立核算 单独核算
  • 研发费用加计扣除是什么意思啊
  • 利润表怎么没有本月数
  • mysql 源码 下载
  • mysql5.7.17 zip 解压安装详细过程
  • Windows Server 2003报错无法定位程序输入点DecodePointer解决方法
  • mac怎么创建apple id
  • macbook怎么开hdr
  • centos的top命令
  • win10系统如何禁用触摸板
  • 进程出现很多regsvr32
  • 电脑word程序
  • vsftpd 配置限制用户目录
  • 雷柏7100p怎么样
  • bootstrap modal 位置
  • Expand、Fasthelp、Fc命令的用法
  • css设置最大高度
  • perl执行shell命令
  • nodejs查找文件
  • unity3d spine
  • 深入浅出python
  • 启动游戏使用的文件夹什么意思
  • js特殊字符有哪些
  • 河南农村社保查询个人账户查询系统
  • 居住证在粤省事怎么查询
  • 个人所得税怎么填写子女教育
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设