位置: 编程技术 - 正文

MySQL全局共享内存介绍(mysql 局域网访问权限)

编辑:rootadmin

推荐整理分享MySQL全局共享内存介绍(mysql 局域网访问权限),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql 共享内存,mysql怎么共享,mysql共享表空间,mysql数据共享,mysql局域网数据库共享,mysql局域网数据库共享,mysql 共享内存,mysql 共享内存,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

全局共享内存则主要是 MySQL Instance(mysqld进程)以及底层存储引擎用来暂存各种全局运算及可共享的暂存信息,如存储查询缓存的 Query Cache,缓存连接线程的 Thread Cache,缓存表文件句柄信息的 Table Cache,缓存二进制日志的 BinLog Buffer, 缓存 MyISAM 存储引擎索引键的 Key Buffer以及存储 InnoDB 数据和索引的 InnoDB Buffer Pool 等等。下面针对 MySQL 主要的共享内存进行一个简单的分析。

查询缓存(Query Cache)

查询缓存是 MySQL 比较独特的一个缓存区域,用来缓存特定 Query 的结果集(Result Set)信息,且共享给所有客户端。通过对 Query 语句进行特定的 Hash 计算之后与结果集对应存放在 Query Cache 中,以提高完全相同的 Query 语句的相应速度。当我们打开 MySQL 的 Query Cache 之后,MySQL 接收到每一个 SELECT 类型的 Query 之后都会首先通过固定的 Hash 算法得到该 Query 的 Hash 值,然后到 Query Cache 中查找是否有对应的 Query Cache。如果有,则直接将 Cache 的结果集返回给客户端。如果没有,再进行后续操作,得到对应的结果集之后将该结果集缓存到 Query Cache 中,再返回给客户端。当任何一个表的数据发生任何变化之后,与该表相关的所有 Query Cache 全部会失效,所以 Query Cache 对变更比较频繁的表并不是非常适用,但对那些变更较少的表是非常合适的,可以极大程度的提高查询效率,如那些静态资源表,配置表等等。为了尽可能高效的利 用 Query Cache,MySQL 针对 Query Cache 设计了多个 query_cache_type 值和两个 Query Hint:SQL_CACHE 和 SQL_NO_CACHE。当 query_cache_type 设置为0(或者 OFF)的时候不使用 Query Cache,当设置为1(或者 ON)的时候,当且仅当 Query 中使用了 SQL_NO_CACHE 的时候 MySQL 会忽略 Query Cache,当 query_cache_type 设置为2(或者DEMAND)的时候,当且仅当Query 中使用了 SQL_CACHE 提示之后,MySQL 才会针对该 Query 使用 Query Cache。可以通过 query_cache_size 来设置可以使用的最大内存空间。

连接线程缓存(Thread Cache)

连接线程是 MySQL 为了提高创建连接线程的效率,将部分空闲的连接线程保持在一个缓存区以备新进连接请求的时候使用,这尤其对那些使用短连接的应用程序来说可以极大的提高创 建连接的效率。当我们通过 thread_cache_size 设置了连接线程缓存池可以缓存的连接线程的大小之后,可以通过(Connections - Threads_created) / Connections * % 计算出连接线程缓存的命中率。注意,这里设置的是可以缓存的连接线程的数目,而不是内存空间的大小。

表缓存(Table Cache)

表缓存区主要用来缓存表文件的文件句柄信息,在 MySQL5.1.3之前的版本通过 table_cache 参数设置,但从MySQL5.1.3开始改为 table_open_cache 来设置其大小。当我们的客户端程序提交 Query 给 MySQL 的时候,MySQL 需要对 Query 所涉及到的每一个表都取得一个表文件句柄信息,如果没有 Table Cache,那么 MySQL 就不得不频繁的进行打开关闭文件操作,无疑会对系统性能产生一定的影响,Table Cache 正是为了解决这一问题而产生的。在有了 Table Cache 之后,MySQL 每次需要获取某个表文件的句柄信息的时候,首先会到 Table Cache 中查找是否存在空闲状态的表文件句柄。如果有,则取出直接使用,没有的话就只能进行打开文件操作获得文件句柄信息。在使用完之后,MySQL 会将该文件句柄信息再放回 Table Cache 池中,以供其他线程使用。注意,这里设置的是可以缓存的表文件句柄信息的数目,而不是内存空间的大小。

表定义信息缓存(Table definition Cache)

表定义信息缓存是从 MySQL5.1.3 版本才开始引入的一个新的缓存区,用来存放表定义信息。当我们的 MySQL 中使用了较多的表的时候,此缓存无疑会提高对表定义信息的访问效率。MySQL 提供了 table_definition_cache 参数给我们设置可以缓存的表的数量。在 MySQL5.1. 之前的版本中,默认值为,从 MySQL5.1. 版本开始,则将默认值调整为 了,最大设置值为。注意,这里设置的是可以缓存的表定义信息的数目,而不是内存空间的大小。

二进制日志缓冲区(Binlog Buffer)

MySQL全局共享内存介绍(mysql 局域网访问权限)

二进制日志缓冲区主要用来缓存由于各种数据变更操做所产生的 Binary Log 信息。为了提高系统的性能,MySQL 并不是每次都是将二进制日志直接写入 Log File,而是先将信息写入 Binlog Buffer 中,当满足某些特定的条件(如 sync_binlog参数设置)之后再一次写入 Log File 中。我们可以通过 binlog_cache_size 来设置其可以使用的内存大小,同时通过 max_binlog_cache_size 限制其最大大小(当单个事务过大的时候 MySQL 会申请更多的内存)。当所需内存大于 max_binlog_cache_size 参数设置的时候,MySQL 会报错:“Multi-statement transaction required more than ‘max_binlog_cache_size' bytes of storage”。

MyISAM索引缓存(Key Buffer)

MyISAM 索引缓存将 MyISAM 表的索引信息缓存在内存中,以提高其访问性能。这个缓存可以说是影响 MyISAM 存储引擎性能的最重要因素之一了,通过 key_buffere_size 设置可以使用的最大内存空间。

InnoDB 日志缓冲区(InnoDB Log Buffer)

这是 InnoDB 存储引擎的事务日志所使用的缓冲区。类似于 Binlog Buffer,InnoDB 在写事务日志的时候,为了提高性能,也是先将信息写入 Innofb Log Buffer 中,当满足 innodb_flush_log_trx_commit 参数所设置的相应条件(或者日志缓冲区写满)之后,才会将日志写到文件(或者同步到磁盘)中。可以通过 innodb_log_buffer_size 参数设置其可以使用的最大内存空间。 注:innodb_flush_log_trx_commit 参数对 InnoDB Log 的写入性能有非常关键的影响。该参数可以设置为0,1,2,解释如下: * 0:log buffer中的数据将以每秒一次的频率写入到log file中,且同时会进行文件系统到磁盘的同步操作,但是每个事务的commit并不会触发任何log buffer 到log file的刷新或者文件系统到磁盘的刷新操作; * 1:在每次事务提交的时候将log buffer 中的数据都会写入到log file,同时也会触发文件系统到磁盘的同步; * 2:事务提交会触发log buffer 到log file的刷新,但并不会触发磁盘文件系统到磁盘的同步。此外,每秒会有一次文件系统到磁盘同步操作。

此 外,MySQL文档中还提到,这几种设置中的每秒同步一次的机制,可能并不会完全确保非常准确的每秒就一定会发生同步,还取决于进程调度的问题。实际 上,InnoDB 能否真正满足此参数所设置值代表的意义正常 Recovery 还是受到了不同 OS 下文件系统以及磁盘本身的限制,可能有些时候在并没有真正完成磁盘同步的情况下也会告诉 mysqld 已经完成了磁盘同步。

InnoDB 数据和索引缓存(InnoDB Buffer Pool)

InnoDB Buffer Pool 对 InnoDB 存储引擎的作用类似于 Key Buffer Cache 对 MyISAM 存储引擎的影响,主要的不同在于 InnoDB Buffer Pool 不仅仅缓存索引数据,还会缓存表的数据,而且完全按照数据文件中的数据快结构信息来缓存,这一点和 Oracle SGA 中的 database buffer cache 非常类似。所以,InnoDB Buffer Pool 对 InnoDB 存储引擎的性能影响之大就可想而知了。可以通过 (Innodb_buffer_pool_read_requests - Innodb_buffer_pool_reads) / Innodb_buffer_pool_read_requests * % 计算得到 InnoDB Buffer Pool 的命中率。

InnoDB 字典信息缓存(InnoDB Additional Memory Pool)

InnoDB 字典信息缓存主要用来存放 InnoDB 存储引擎的字典信息以及一些 internal 的共享数据结构信息。所以其大小也与系统中所使用的 InnoDB 存储引擎表的数量有较大关系。不过,如果我们通过innodb_additional_mem_pool_size 参数所设置的内存大小不够,InnoDB 会自动申请更多的内存,并在 MySQL 的 Error Log 中记录警告信息。

这里所列举的各种共享内存,是我个人认为对 MySQL 性能有较大影响的集中主要的共享内存。实际上,除了这些共享内存之外,MySQL 还存在很多其他的共享内存信息,如当同时请求连接过多的时候用来存放连接请求信息的back_log队列等。

以上内容可能存在分析不妥之处,欢迎各位朋友拍砖,一起交流。

Mysql数据库锁定机制详细介绍 前言为了保证数据的一致完整性,任何一个数据库都存在锁定机制。锁定机制的优劣直接应想到一个数据库系统的并发处理能力和性能,所以锁定机制

Mysql日志文件和日志类型介绍 日志文件类型MySQL有几个不同的日志文件,可以帮助你找出mysqld内部发生的事情:日志文件记入文件中的信息类型错误日志记录启动、运行或停止mysqld时

MySQL创建新用户、增加账户的2种方法及使用实例 可以用两种方式创建MySQL账户:1.使用GRANT语句2.直接操作MySQL授权表最好的方法是使用GRANT语句,因为这样更精确,错误少。创建超级用户:mysqlGRANTALLPRIVIL

标签: mysql 局域网访问权限

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

上一篇:MySQL内存使用之线程独享介绍(mysql内存使用率过高)

下一篇:Mysql数据库锁定机制详细介绍(mysql数据库死锁)

  • 工资申报是当月申报当月的吗
  • 注册资本 投资比例
  • 去年的成本如何调整汇算清缴额
  • 资产负债表里的存货包括哪些科目
  • 利润和营收哪个更重要
  • 简易征收类型
  • 未预缴开票
  • 支付境外特许权所得需要交什么税
  • 持有待售的固定资产减值可以转回吗
  • 按季度报税怎么处理
  • 不续约赔偿金要交税吗
  • 增值税发票做假什么后果
  • 发票打印机分专票和普票的吗?
  • 佣金增值税
  • 促销服务费能抵增值税吗
  • 重置申报清册是什么意思
  • 小规模季度不超过30万元免税会计分录
  • 个体户可以不领税控盘吗
  • 发出商品确认收入的条件
  • 建筑物占用的土地怎么算
  • 生产成本明细账怎么填图片
  • 租赁的厂房改造可以费用化吗
  • 增值税一般纳税人与小规模纳税人的区别
  • 纸质承兑汇票到期怎么兑现,多久能到帐
  • 企业收到应收账款6要素哪个增加哪个减少
  • 非营利组织企业所得税政策
  • 固定资产更改折旧年限怎么账务处理
  • 工资五险一金缴费标准是多少
  • 财务负责人的岗位
  • guest的作用
  • 房租押金未全额缴纳
  • 计提折旧是什么账户
  • 以产品对外投资需要进项税额转出吗
  • 总结linux命令行的主要用法
  • 民间非营利组织会计账务处理
  • 公司收到个人入股资金要交税吗
  • 偷税漏税的会计要负什么责任
  • 公司作为股东有什么好处
  • 金融保险业的营业税率为
  • 对外投资概述
  • 董事费如何计算个人所得税
  • session跨域导致失效
  • 内资企业
  • 股权转让完税证明要多少时间
  • 委托境外机构研发
  • 年底全年的研发费用占比
  • mysql客户端怎么使用
  • 含税价的基本定义是什么
  • 坏账核销会计处理
  • 非同一控制下的长期股权投资入账价值
  • 社保是当月计提当月交吗
  • 商品削价的核算
  • 车辆维修费如何赔偿
  • 材料退库的流程
  • 小规模纳税人退税账务处理
  • 财务费用减少记借方还是贷方
  • 递延所得税负债会计分录
  • 固定资产竣工前予以资本化吗
  • 转账支票转账需要带什么
  • 赠送的产品价格为发票金额为零怎么入库
  • openssl安装教程
  • win7桌面图标变成了lnk
  • centos6.5忘记密码
  • win7系统按Ctrl+Shift不能切换输入法的图文教程
  • win8平板玩lol
  • win8系统崩溃无法开机
  • win7 netplwiz
  • nodejs 请求
  • linux shell脚本编程100例
  • python动态绑定属性
  • js获取鼠标点击位置
  • 卷烟批发环节的消费税税率
  • 跨年的增值税专用发票怎么冲红或者是作废
  • 同城通办办税大厅
  • 投资联营的房产税纳税人是谁
  • 支付宝申领失业金申请审核多久
  • 增值税是要上交给国家的吗?
  • 小微企业房产税优惠减免政策
  • 什么是"五证合一"登记制度?办理"五证合一"程序和方案
  • 苏州二套房契税交多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设