InnoDB缓存相关优化
无论对于哪一种数据库,缓存技术都是提高数据库性能的关键
,物理磁盘的访问速度与内存的访问速度永远都不是一个数量级的。通过缓存技术无论是在读还是写方面,都可以大大提高数据库整体性能。
Innodb_buffer_pool_size的合理设置
InnoDB存储引擎的缓存机制和MyISAM的最大区别就在于InnoDB不仅仅缓存索引,同时还会缓存实际的数据
。所以,完全相同的数据库,InnoDB存储引擎可以使用更多的内存来缓存数据库相关的信息,前提是要有足够的物理内存。这对于内存价格不断降低的时代,无疑是个很吸引人的特性。
innodb_buffer_pool_size
参数用来设置InnoDB最主要的Buffer(Innodb BufferPool)的大小,也就是缓存用户表及索引数据的最主要缓存空间,对InnoDB整体性能影响也最大。无论是MySQL官方手册还是网络上很多人分享的InnoDB优化建议,都是简单地建议将InnoDB的Buffer Pool设置为整个系统物理内存的50%~80%之间。如此轻率地给出此类建议实在有些不妥。
不管是多么简单的参数,都可能与实际运行场景有很大的关系
。完全相同的设置,在不同的场景下表现可能相差很大。从InnoDB的Buffer Pool到底该设置多大这个问题来看,首先须要确定的是这台主机是不是只能提供MySQL服务?MySQL须要提供的最大连接数是多少?MySQL中是否还有MyISAM等其他存储引擎提供服务?如果有,其他存储引擎所需的Cache有要多大?
假设是一台单独给MySQL使用的主机,物理内存总大小为8GB,MySQL最大连接数为500,同时还使用了MyISAM存储引擎,这时候整体内存该如何分配呢?
内存分配为如下几大部分。
(1)系统使用,假设预留800MB。
(2)线程独享,最大约为2GB = 500×(1MB + 1MB + 1MB + 512KB +512KB),组成大概如下:
sort_buffer_size:1MB
join_buffer_size:1MB
read_buffer_size:1MB
read_rnd_buffer_size:512KB
thread_statck:512KB
(3)MyISAM Key Cache,假设大概为1.5GB。
(4)InnoDB Buffer Pool最大可用量:8GB-800MB-2GB-1.5GB = 3.7GB。
假设这个时候还按照50%~80%的建议来设置,最小也是4GB。通过估算,最大可用值在3.7GB左右,那么在系统负载很高,线程独享内存差不多到极限时,系统很可能就会出现内存不足的问题了。而且上面还只是列出了一些使用内存较大的地方,如果进一步细化,很可能导致可用内存更少。
上面只是一个简单的示例分析,实际情况并不一定是这样的。这里只是希望大家了解,在设置一些参数的时候千万不要想当然,一定要详细地分析可能出现的情况,然后再通过不断测试和调整来达到所处环境的最优配置
。就我个人而言,正式环境上线之初,一般都会采取相对保守的参数配置策略。上线之后,再根据实际情况和收集到的各种性能数据进行针对性调整。
总结
- 缓存是提高数据库性能的关键
- innodb_buffer_pool_size的设置要合理
InnoDB缓存相关优化相关推荐
- 数据库分享一: MySQL的Innodb缓存相关优化
无论是对于哪一种数据库来说,缓存技术都是提高数据库性能的关键技术,物理磁盘的访问速度永 远都会与内存的访问速度永远都不是一个数量级的.通过缓存技术无论是在读还是写方面都可以大大提 高数据库整体性能. ...
- mysql innodb 缓存设置_数据库分享一: MySQL的Innodb缓存相关优化
无论是对于哪一种数据库来说,缓存技术都是提高数据库性能的关键技术,物理磁盘的访问速度永 远都会与内存的访问速度永远都不是一个数量级的.通过缓存技术无论是在读还是写方面都可以大大提 高数据库整体性能. ...
- mysql数据库前端缓存_MySQL数据库性能优化--缓存参数优化
在平时被问及最多的问题就是关于 MySQL 数据库性能优化方面的问题,所以最近打算写一个MySQL数据库性能优化方面的系列文章,希望对初中级 MySQL DBA 以及其他对 MySQL 性能优化感兴趣 ...
- LNMP架构之PHP——MemCache对PHP页面的缓存加速优化
前言 1.什么是MemCache? MemCache是一个自由.源码开放.高性能.分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载. 它通过在内存中缓存数据和对象来减少读取数据库的 ...
- mysql 5.1版本无innodb trx_MySQL 5.7: Innodb 事务子系统优化-阿里云开发者社区
MySQL5.7 : Innodb 事务子系统优化 之前写了篇博客介绍了Percona Server对Read View的优化,顺带简单提到了MySQL5.7的事务子系统优化,详细见http://my ...
- MemCache对PHP页面的缓存加速优化
一.MemCache 简介 Memcache 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度. ...
- Linux DNS缓存相关
DNS缓存相关 bind-utils bind是linux系统下的一个DNS服务程序.bind-utils是bind软件提供的一组DNS工具包,里面有一些DNS相关的工具.主要有:dig,host,n ...
- C/C++ 流水线 缓存以及优化
抄书笔记 <游戏引擎架构>第二版 游戏是软实时系统.软实时系统是指游戏软件必须在限期内完成操作--游戏中最显然的需求是没帧必须在16.6ms(以达到60FPS)或者33.3ms(以达到30 ...
- 附视频及ppt:在线分享《从案例说InnoDB的基本优化》总结
2016.4.20 KVM虚拟化实践社区&知数堂 联合在线分享<从案例说InnoDB的基本优化>圆满结束 本文进行总结并且发布视频&PPT资源 分享主题 <从案例说 ...
最新文章
- authy不同账户间不同步_「第七期」shopify产品还能同步到微信小程序销售?看这里...
- 黑色星期五c语言,求黑色星期五问题~
- 第7集 构造函数中抛出的异常
- 倍数应用题后面需要带单位吗_数学应用题解答思路解析(附例题)
- 快速提高Python数据分析速度的八个技巧
- FormsAuthentication 和 Session 超时时间不一的问题
- ECharts-图表回执组件
- [文章备份]RSS阅读器在手机上APP配置方法
- YellowBrick-聚类评估示例
- 如何设计沉浸式游戏引导界面?你要知道的七大点
- 基于Spark的电影推荐系统(推荐系统~3)
- 映射网络驱动器失败的解决办法
- 农村三资管理平台app_农村三资管理系统功能
- python 多元线性回归的系数检验 t p值,多元线性回归检验t检验(P值),F检验,R方等参数的含义...
- CF 379F: New Year Tree
- zabbix使用详解
- 黑马程序员14套经典IT教程+面试宝典
- 清除90天苹果充值记录_王者荣耀安卓苹果跨系统角色转移服务,限量测试收费99元...
- 线性模型(梯度下降随机梯度下降)
- 西门子官网下载Eplan部件库
热门文章
- 华为交换机修改主机名
- oracle数据库激活控制文件位置,Oracle数据库之Oracle 重建控制文件一例
- php 下载的官方扩展 没有configure文件解决办法
- Java八大排序详解及源码
- Vivado exception_access_violation
- 基于virtualbox的centos7安装jdk1.8
- python socket thread,python实现socket+threading处理多连接的方法
- 电脑的发展史_苹果都使用自研芯片了,你还记得你的第一台电脑吗?
- n3k配置vpc是否还需要配置hsrp_HSRP
- eclipse如何导入一个项目_如何建立一个完美的 Python 项目