ITPub博客

首页 > 数据库 > MySQL > InnoDB锁结构个数最大限制

InnoDB锁结构个数最大限制

原创 MySQL 作者:yzs87 时间:2018-01-28 17:45:10 0 删除 编辑

innodb锁个数是固定的,系统中存在的数量在初始化时就已经确定好。

    innobase_start_or_create_for_mysql->lock_sys_create(srv_lock_table_size)->
lock_sys->rec_hash = hash_create(srv_lock_table_size);

锁都存放在锁系统的哈希表中,该哈希表最大是系统中页个数的5倍:

    srv_normalize_init_values->
srv_lock_table_size = 5 * (srv_buf_pool_size / UNIV_PAGE_SIZE);

space和page_no哈希一个key值,作为数据页的锁标号,从lock_sys->rec_hash表中获取锁结构,后续页加锁时,通过lock_hash_val从lock_sys->rec_hash中获取锁指针,然后创建锁结构申请内存。
    buf_page_get_gen->
        block->lock_hash_val = lock_rec_hash(space, offset);

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31493717/viewspace-2150584/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
专注于MySQL、Aerospike、PostgreSQL数据库

注册时间:2017-10-03

  • 博文量
    149
  • 访问量
    285527