目录

常用配置查询

# 查询表大小

  • 查找数据库中十个最大的表和索引

    -- 单位是 GB
    select table_schema, TABLE_NAME, dat, idx from 
    (SELECT table_schema, TABLE_NAME, 
           ( data_length ) / 1024 / 1024 / 1024 as dat,
           ( index_length ) / 1024 / 1024 / 1024 as idx
    FROM information_schema.TABLES
    order by 3 desc ) a
    order by 3 desc 
    limit 10;
    

# 查询缓存配置

  • innodb_buffer_pool_instances 用于控制缓冲池 (buffer pool) 内部划分为多少个实例,每个实例可以单独管理缓冲区域,可以提高读写性能,避免单一缓冲池出现性能瓶颈。

    innodb_buffer_pool_chunk_size 每个缓冲池实例的 chunk size ,每个 chunk 块包含多个连续的数据页。

    innodb_page_size 每个块(chunk)的数据页的数量。

    innodb_buffer_pool_size 缓冲池大小,innoDB 引擎主要用来缓存数据和索引的区域。一般来说会设置物理内存大小的 50%-80% 左右,它的大小一般是等于或者是 innodb_buffer_pool_instances * innodb_buffer_pool_chunk_size 的倍数。

    select @@innodb_buffer_pool_size/1024/1024, 
    @@innodb_buffer_pool_chunk_size/1024/1024,
    @@innodb_buffer_pool_instances, 
    @@innodb_page_size
    

# 查询 innodb 页大小

page size 默认 16 kb

show global status like 'innodb_page_size' 
或者
select @@innodb_page_size / 1024 as page_size

# Trace 设置优化跟踪

-- 查询开启状态
SELECT @@optimizer_trace

-- 开启
set @@optimizer_trace='enabled=on'

-- 设置 json 结束标识
set @@end_markers_in_json='on'

-- 查询跟踪信息
SELECT * from information_schema.optimizer_trace;

-- 关闭
set @@optimizer_trace='enabled=off,one_line=off'

上次更新: 2024/11/05, 03:15:29