账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    MariaDB 中各种内存的size是使用的时候才申请还是启动就申请?
    72
    0

    现在数据库主要使用MariaDB,存储引擎是innodb, 但是在实际的使用中,MariaDB占用的实际内存一般比innodb的缓冲池大20%左右, 我检查了部分设置:

    show variables like '%size%';
    Variable_name Value
    innodb_additional_mem_pool_size 8388608
    innodb_buffer_pool_size 4294967296
    innodb_change_buffer_max_size 25
    innodb_ft_cache_size 8000000
    innodb_ft_max_token_size 84
    innodb_ft_min_token_size 3
    innodb_ft_total_cache_size 640000000
    innodb_log_block_size 512
    innodb_log_buffer_size 2097152
    innodb_log_file_size 268435456
    innodb_max_bitmap_file_size 104857600
    innodb_online_alter_log_max_size 134217728
    innodb_page_size 16384
    innodb_purge_batch_size 20
    innodb_sort_buffer_size 1048576
    innodb_sync_array_size 1
    join_buffer_size 131072
    key_buffer_size 33554432

    我把这些各种*_size加一起后发现可以与MariaDB实际占用的内存相等, 但是其中一部分的设置的内存可以肯定是没有占用的, 所以我想知道,是否这些size一旦设置后数据库启动时就会马上申请对应的大小, 还是说实际使用一部分就申请一部分内存, 直到申请的内存达到设置的上限.(比如设置了4个g的缓冲池,是否数据库启动时缓冲池实际没有向操作系统申请4个g的内存,而是等到有实际的操作才会申请.)
    如果是的话, 作为一个innodb为默认的存储引擎的数据库, 将一些基于其他存储引擎设置的size就可以降低到最低来节约内存.

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部