zoukankan      html  css  js  c++  java
  • MySQL的内存都用在了哪里

    • InnoDB buffer pool:主要用于缓存InnoDB的表、索引数据。通常缓冲池(buffer pool)的大小设置为服务器系统内存大小的50%~75%。如果系统有大量的内存,可以通过将其分配给多个缓冲池实例(buffer pool instances),来提高并发性。缓冲池不宜设置过小或过大,过小会照成缓冲池里面的页不断进行刷新,过大会因为内存争用导致发生交换(swap)。

    • MyISAM key buffer:用于缓冲MyISAM表的索引,被所有的线程共享。

    • 内存表:如果是一个内部使用的临时内存表,当表增大时,会将其转换成磁盘表。如果是由MEMORY引擎创建的表,则不会转换成磁盘表。

    • MySQL Performance Schema :用于监控mysql的执行性能,随着服务器的实际负载变化,动态分配使用内存。一旦内存被分配,只有在下次服务器重启时才会释放。

    • 客户端连接线程:每个线程会使用到连接缓冲、结果缓冲和线程堆栈。连接缓冲和结果缓冲会进行动态增长。每个连接线程也会使用内存用于计算语句摘要。

    • 全部线程:所有的线程共享相同的基础内存。当一个线程不再使用,如果线程没有回到线程缓存里,它分配的内存将会释放。

    • 读取缓冲:对表进行顺序扫描时,会为其分配一个读取缓冲。

    • 随机读取缓冲:对数据进行任意顺序读取时,会为其分配一个随机读取缓冲,以防止发生磁盘检索。

    • 连接操作:所有的连接执行都是单次扫描,而且大多数连接甚至不需要使用临时表就可以完成。大部分的临时表是基于内存的哈希表。

    • 排序缓冲:大多数执行排序的请求,根据结果集大小分配排序缓冲区和临时文件。

    • 表缓存:MySQL需要使用内存和描述符对表操作进行缓存。所有正在使用的表会在表缓存内进行管理。

    • 表定义缓存:MySQL为表定义缓存分配内存,用于保存表定义。

  • 相关阅读:
    jq判断鼠标滚轴向上滚动还是向下滚动
    Directory 中user Var 如何添加到通道变量中?
    Centos 6.5 freeswitch 编译mod_shout
    golang esl api
    opensips redis配置记录
    luasocket 安装记录 (FS1.4)
    luasocket 安装记录 (FS1.6)
    Callcenter 模块解析
    OpenSIPS 1.11.1安装记录
    阿里服务器挂载数据盘
  • 原文地址:https://www.cnblogs.com/guoweilf/p/12446711.html
Copyright © 2011-2022 走看看