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为表定义缓存分配内存,用于保存表定义。

  • 相关阅读:
    Elasticsearch拼音分词和IK分词的安装及使用
    Java同步、异步区别
    Elasticsearch深入搜索之全文搜索及JavaAPI使用
    Elasticsearch学习笔记
    Elasticsearch拼音和ik分词器的结合应用
    Elasticsearch深入搜索之结构化搜索及JavaAPI的使用
    Java反射的理解
    打印三个长宽不同的矩形
    是非人生 — 一个菜鸟程序员的5年职场路 第23节
    是非人生 — 一个菜鸟程序员的5年职场路 第35节
  • 原文地址:https://www.cnblogs.com/guoweilf/p/12446711.html
Copyright © 2011-2022 走看看