• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 解析mysql 缓存如何使用内存

解析mysql 缓存如何使用内存

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了mysql缓存,mysql缓存设置,redis做mysql缓存,mysql数据库缓存,mysql缓存机制等相关知识,希望本文的分享对您有所帮助

先说明2点
开启缓存也会带来开销,主要表现在一下方面
读取在查询开始之前必须要检查缓存
如果查询是缓存的,但是不在结果集中,那么产生结果后保存数据会带来一定的开销
向缓存写如数据也会带来开销

有的情况查询缓存不会被缓存,即使你使用 SQL_CACHE也不能缓存
主要一下几个
引用了用户自定义函数
引用了用户自定义变量
以用了存续过程
查询中包含一些实时的系统函数,比如now
引用了临时表

虽然上面说到缓存会带来一些开销
但是缓存对mysql  还是很重要
带来的好处比坏处多

下面讲一下mysql缓存如何使用内存
查询缓存的内存池被分为大小可变的块,每一个快都知道自己的大小,指向前一个和后一个逻辑块和物理块 的指针,服务器启动时初始化查询缓存使用的物理内存,内存池开始咋hi要一个快,她的大小为被配置为缓存的大小减去自身需要的40KB大小。在每次缓存查询结果时,会为查询结果分配一个缓存块,但是服务器无法估计需要缓存的结果的大小,至少会大于等于query_cache_min_res_unit,,服务器在分配时,不会再缓存中一次生成最终结果然后缓存发送到客户端,而是产生一条缓存一条,这样缓存就能保证空间不会在分配时浪费或者不足。分配内存块的速度较慢,因为服务器需要检查可用内存列表并且找打大小合适的快,因此服务器会尽量减少分配次数,当需要缓存结果时,他会构建一个大小至少为最小值的块,并且把结果放在块中,如果块已经满了,但是数据没有完整保存,那么就会产生一个新块并且保存数据,在数据存完后,如果数据块还有空隙,服务器就会剪辑数据块,并且把空间并入剩余的空间中,在其中可能产生碎片。通过紧缩,可以讲碎片空间并入有效的数据空间中。

对于事物引擎,比如innodb,事物会影响缓存,因为脏数据也会让其他引用了这块数据的缓存失效。直到该事物提交或回滚之后,这块数据才会被缓存。
query_cache_min_res_unit:the minimum size (in bytes) for blocks allocated by the query cache. The default value is 4096 (4KB)

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 解析mysql 缓存如何使用内存
  • mysql 设置查询缓存
  • MySQL 编码机制
  • 优化mysql 还是使用缓存?
  • 深入理解MySQL中的事务机制
  • 简单介绍MySQL中的事务机制

相关文章

  • 2018-12-05mysql 一个较特殊的问题:You can''t specify target table '
  • 2018-12-05MYSQL日志与备份还原详解
  • 2018-12-05MySQL优化之—数据类型宽度的简单介绍
  • 2018-12-05mysql中使用通配符进行过滤教程
  • 2018-12-05ACCESS中关于SQL语句的转义字符
  • 2018-12-05从MySQL迁移到MongoDB记一次MongoDB性能问题详解
  • 2018-12-05数据库分页存储过程代码
  • 2017-05-11浅析MySQL之字符串函数
  • 2017-05-11使用MySQL MySqldump命令导出数据时的注意事项
  • 2018-12-05MySQL触发器使用

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • SQL数据操作基础(中级)6
    • 如何通过MySql查看与修改auto_increment的方法
    • mysql数据库导出excel xml等格式文件
    • MySQL使用cmd命令修改密码的操作
    • mysql存储过程事务管理简析
    • 关于InnoDB型数据库优化的实例详解
    • MySQL日志详细解析
    • mysql 数据库中my.ini的优化 2G内存针对站多 抗压型的设置
    • SQL Server使用Merge语句当源表数据集为空时,无法进行查询的问
    • mysql编码问题汇总

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有