MYSQL内存管理及优化

内存是影响数据库性能的主要资源,也是mysql性能优化的一个重要方面;

内存优化的原则

将尽量多的内存分配给mysql做缓存,但是要给操作系统和其他程序的运行预留足够的内存,否则产生swap页交换,将严重影响系统性能;

myisam的数据文件读取以来操作系统自身的io缓存,如果有myisam的表,就要预留更多的内存给操作系统做io缓存;

排序区,连接区等缓存是分配给每个数据库会话session专用的,默认值的设置要根据最大的连接数据合理分配,如果设置的太大,不但浪费内存资源,在并发比较高的时候会导致物理内存耗尽;

MyISAM内存优化

MyISAM存储引擎使用 key_buffer缓存索引块,以加速MyISAM索引的读写速度。

MyISAM表的数据库,mysql没有特别的索引机制,完全依赖系统的io 缓存。

1.ey_buffer_size 设置

key_buffer_size决定MyISAM索引缓存区的大小;一般可以内存的1/4;

2.用多个索引缓存

3.整 中点插入策略

4.整 read_buffer_size 和 read_rnd_buffer_size

innodb的内存优化

innod的缓存机制

innodb用以块内存做io缓存池,该缓存池不仅用来缓存innodb的索引,而且也用来缓存innodb的数据块;

与MyISAM是不同的;

innod的缓存机制

innodb_buffer_pool_size的设置

innodb_buffer_pool_size决定InnoDB存储引擎表数据和索引数据的最大缓存区的大小;

与oracle的缓存机制很类似。

缓存区越大,缓存的命中率越高,需要的磁盘IO越少,性能越高。

在一个专用的数据库服务器上,可以将80%的物理内存分配给innodb buffer pool ,但是一定要注意设置过大导致页交换,系统或其他的程序可以内存不足;

调整old sublist 大小

old sublist的比例有innodb_old_blocks_pct决定,默认是37;

在没有比较大的表扫描或索引扫描的情况下,如果youngs的值很低,可能需要适当的增大innodb_old_blocks_pct的值,或者减少 innodb_old_blocks_time的值。

调整innodb_old_blocks_time的设置;

这个参数决定了缓存数据块由old sublist转移到young sublit的快慢;

调整缓存池的数量,减少内部对缓存池数据结构的挣用;

mysql内部不同的线程对innodb缓存池的访问在某些阶段是互斥的,这种内部的挣用现象也会产生性能问题,尤其是在搞并发和buffer pool 比较大的情况下。

通过inndb_buffer_pool_instances参数设置

控制innodb buffer刷新,延长数据缓存时间,减缓磁盘io;

innodb doublewrite

关于mysql内存管理_MYSQL内存管理及优化相关推荐

  1. mysql 线程内存 回收_MySQL内存使用-线程独享

    对于任何一个数据库管理系统来说,内存的分配使用绝对可以算的上是其核心之一了,所以很多希望更为深入了解某数据库管理系统的人,都会希望一窥究竟,我也不例外. 从内存的使用方式MySQL 数据库的内存使用主 ...

  2. mysql 内存调整_mySQL内存及虚拟内存优化设置

    为了装mysql环境測试,装上后发现启动后mysql占用了非常大的虚拟内存,达8百多兆. 网上搜索了一下,得到高人指点my.ini. 再也没见再具体的了..仅仅好打开my.ini逐行的啃,虽然英文差了 ...

  3. mybatis与mysql调优_MySQL + mybatis的SQL优化方案

    sql优化方案: 1.添加索引,在条件参数,关联参数上建立参数, 2.字段优化,需要什么字段查什么字段 3.模糊查询尽量使用: select * from tableName a where a.na ...

  4. mysql内存机制_MySQL内存管理机制

    1. BufferPool What is BufferPool? MySQL InnoDB Buffer Pool,MySQL InnoDB 缓冲池.里面缓存着大量数据(数据页),使 CPU 读取或 ...

  5. mysql调试事件_mysql日志管理分析调试实例_mysql

    以下的文章主要介绍的是mysql 操作日志查看的实际操作步骤以及对其实际操作步骤的具体描述,假如你在实际操作中遇到相似的情况,但是你却不知道对其如何正确的解决,那么以下的文章对你而言一定是良师益友. ...

  6. mysql 字段授权_mysql授权管理

    首先说一下mysql数据库管理权限的数据库是mysql库 我们看一下mysql库中都有哪些表 mysql> show tables from mysql; +------------------ ...

  7. mysql权限配置文件_MySQL权限管理、配置文件(三)

    一.MySQL权限管理 GRANT 权限 ON 授权范围 TO '用户名'@'允许的ip(所有%)' IDENTIFIED BY '用户密码'; 权限:参加下表,一般常用的是CREATE.DELETE ...

  8. mysql 账户管理_Mysql账户管理_MySQL

    bitsCN.com Mysql账户管理 1.创建账户 Shell代码 CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'my pass'; 2.删除账 ...

  9. mysql web日志_mysql日志管理

    mysql日志管理 mysql的日志分为如下几类: 1.错误日志 1.1记录服务器启动和关闭过程中的信息 1.2记录服务器运行过程中的错误信息. 1.3记录事件调度器运行一个事件时产生的信息. 1.4 ...

最新文章

  1. jwt获取token_SpringBoot2 高级案例(09): 整合 JWT 框架,解决Token跨域验证问题
  2. 爬虫必备工具,掌握它就解决了一半的问题
  3. 瞧!老师的屏幕是如何被学生的弹幕玩坏的......
  4. Qt编写安防视频监控系统4-删除视频
  5. python中的diff_python-Numpy和diff()
  6. 测试android兼容性测试工具,Android兼容性测试工具Spoon
  7. python界面gui随机生成器_Python 实现的、带GUI界面的词云生成器
  8. 20.1 shell脚本介绍 20.2 shell脚本结构和执行 20.3 date命令用法 20.4 shell脚本中的变量...
  9. python查询注册表子项是否存在并操作
  10. Android利用Thread或AsyncTask进行非UI操作
  11. 虚函数和虚析构函数的实现原理--虚函数表
  12. 将一副遥感影像裁剪为多幅图像
  13. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_18-异常处理-不可预知异常处理...
  14. 淘宝二级类目、换类目会降权吗,换类目对店铺的影响
  15. 分享128个商务模板PPT模板,总有一款适合你
  16. c语言输入1显示你好,你好,求指教!该怎么用C语言的scanf实现一次输入若干个数据...
  17. 【Spring】普通类获取Spring容器的bean的方法
  18. 用python做一个简单的游戏,用python写一个小游戏
  19. python打印hello_Python第一行代码——打印hello world
  20. js控制div内部滚动内容横向滑动位置

热门文章

  1. 2020校招薪酬大比拼,你被倒挂了没?
  2. 使用Druid数据源时候这个问题碰到过没:connection holder is null
  3. 答应我!别再写上千行的类了,好吗?
  4. 由Linux内核bug引起SSH登录缓慢问题的排查与解决
  5. 一次分表踩坑实践的探讨
  6. opencv jni Android 实例笔记
  7. MultiResUNet笔记
  8. 表格检测开源网络推荐
  9. python自定义线程
  10. win10 更新pip