• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • INNODB_BUFFER_PAGE_LRU表

    INNODB_BUFFER_PAGE_LRU表提供有关InnoDB缓冲池中页面的信息;特别是,它们是如何在决定哪些页面LRU列表下令逐出从缓冲池,当它变满。

    INNODB_BUFFER_PAGE_LRU表与该表具有相同的列INNODB_BUFFER_PAGE,除了该INNODB_BUFFER_PAGE_LRU表具有LRU_POSITIONCOMPRESSED列而不是BLOCK_IDPAGE_STATE列。

    有关相关用法信息和示例,请参见“ InnoDB INFORMATION_SCHEMA缓冲池表”。

    警告

    查询INNODB_BUFFER_PAGE_LRU表可能会影响性能。除非您了解性能影响并确定可接受,否则不要在生产系统上查询此表。为避免影响生产系统的性能,请重现要调查的问题并在测试实例上查询缓冲池统计信息。

    INNODB_BUFFER_PAGE_LRU表包含以下列:

    • POOL_ID

      缓冲池ID。这是一个区分多个缓冲池实例的标识符。

    • LRU_POSITION

      页面在LRU列表中的位置。

    • SPACE

      表空间ID;与相同的值INNODB_TABLES.SPACE

    • PAGE_NUMBER

      页码。

    • PAGE_TYPE

      页面类型。下表显示了允许的值。

      INNODB_BUFFER_PAGE_LRU.PAGE_TYPE值

      页面类型描述
      ALLOCATED刚分配的页面
      BLOB未压缩的BLOB页面
      COMPRESSED_BLOB2后续comp BLOB页面
      COMPRESSED_BLOB第一个压缩的BLOB页面
      ENCRYPTED_RTREE加密的R树
      EXTENT_DESCRIPTOR范围描述符页面
      FILE_SPACE_HEADER文件空间头
      FIL_PAGE_TYPE_UNUSED没用过
      IBUF_BITMAP插入缓冲区位图
      IBUF_FREE_LIST插入空闲列表
      IBUF_INDEX插入缓冲区索引
      INDEXB树节点
      INODE索引节点
      LOB_DATA未压缩的LOB数据
      LOB_FIRST未压缩的LOB的第一页
      LOB_INDEX未压缩的LOB索引
      PAGE_IO_COMPRESSED压缩页面
      PAGE_IO_COMPRESSED_ENCRYPTED压缩和加密页面
      PAGE_IO_ENCRYPTED加密页面
      RSEG_ARRAY回滚段数组
      RTREE_INDEXR树索引
      SDI_BLOB未压缩的SDI BLOB
      SDI_COMPRESSED_BLOB压缩的SDI BLOB
      SDI_INDEXSDI指数
      SYSTEM系统页面
      TRX_SYSTEM交易系统数据
      UNDO_LOG撤消日志页面
      UNKNOWN未知
      ZLOB_DATA压缩的LOB数据
      ZLOB_FIRST压缩的LOB第一页
      ZLOB_FRAG压缩的LOB片段
      ZLOB_FRAG_ENTRY压缩的LOB片段索引
      ZLOB_INDEX压缩的LOB索引

    • FLUSH_TYPE

      冲洗类型。

    • FIX_COUNT

      缓冲池中使用此块的线程数。如果为零,则该块有资格被驱逐。

    • IS_HASHED

      此页面上是否已构建哈希索引。

    • NEWEST_MODIFICATION

      最年轻的修改的日志序列号。

    • OLDEST_MODIFICATION

      最旧的修改的日志序列号。

    • ACCESS_TIME

      用于判断页面首次访问时间的抽象数字。

    • TABLE_NAME

      页面所属表的名称。此列仅适用于PAGE_TYPE值为的页面INDEX

    • INDEX_NAME

      页面所属索引的名称。这可以是聚集索引或辅助索引的名称。此列仅适用于PAGE_TYPE值为的页面INDEX

    • NUMBER_RECORDS

      页面内的记录数。

    • DATA_SIZE

      记录大小的总和。此列仅适用于PAGE_TYPE值为的页面INDEX

    • COMPRESSED_SIZE

      压缩的页面大小。NULL用于未压缩的页面。

    • COMPRESSED

      页面是否被压缩。

    • IO_FIX

      此页面是否有任何I / O待处理:IO_NONE=无待处理I / O,IO_READ=读取待处理,IO_WRITE=写入待处理。

    • IS_OLD

      该块是否在LRU列表中旧块的子列表中。

    • FREE_PAGE_CLOCK

      freed_page_clock块最后位于LRU列表开头时的计数器值。该freed_page_clock计数器跟踪从LRU列表的末尾去除的块数。

    mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE_LRU LIMIT 1\G
    *************************** 1. row***************************
                POOL_ID: 0
           LRU_POSITION: 0
                  SPACE: 97
            PAGE_NUMBER: 1984
              PAGE_TYPE: INDEX
             FLUSH_TYPE: 1
              FIX_COUNT: 0
              IS_HASHED: YES
    NEWEST_MODIFICATION: 719490396
    OLDEST_MODIFICATION: 0
            ACCESS_TIME: 3378383796
             TABLE_NAME: `employees`.`salaries`
             INDEX_NAME: PRIMARY
         NUMBER_RECORDS: 468
              DATA_SIZE: 14976
        COMPRESSED_SIZE: 0
             COMPRESSED: NO
                 IO_FIX: IO_NONE
                 IS_OLD: YES
        FREE_PAGE_CLOCK: 0
    

    注意

    • 该表主要用于专家级的性能监控,或者在为MySQL开发与性能相关的扩展时有用。
    • 您必须具有PROCESS查询此表的特权。
    • 使用该INFORMATION_SCHEMACOLUMNS表或该SHOW COLUMNS语句参见有关该表的列的其他信息,包括数据类型和默认值。
    • 查询该表可能需要MySQL分配较大的连续内存块,该内存块是缓冲池中活动页面数的64倍以上。这种分配可能会导致内存不足错误,尤其是对于具有数千兆字节缓冲池的系统。
    • 查询该表需要MySQL在遍历LRU列表时锁定表示缓冲池的数据结构,这会减少并发性,尤其是对于具有数GB缓冲池的系统。
    • 当删除表,表行,分区或索引时,关联页面将保留在缓冲池中,直到需要其他数据空间为止。该INNODB_BUFFER_PAGE_LRU表报告有关这些页面的信息,直到将它们从缓冲池中清除为止。有关如何InnoDB管理缓冲池数据的更多信息,请参见“InnoDB缓冲池”。