首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL 8.0 数据字典

MySQL 8.0 对数据字典进行了重构,用户、数据字典MySQL 其它系统的元数据都统一保存到 mysql 库的数据字典中了。...数据字典本身也大变样了: 数据字典不再位于 InnoDB 系统空间,而是迁移到 mysql 库中,mysql 库位于 mysql 空间,磁盘文件为 mysql.ibd。...除了数据字典,m_registry 中还包含了 mysql 库中的其它 MySQL 系统。...打开数据字典 数据字典保存着 MySQL 运行过程中需要的一系列关键数据,使用频次很高,MySQL 启动过程中就会把数据字典的元数据都加载到内存中,这就是打开的过程。...MySQL 启动过程中,要先打开数据字典才能拿到数据字典的元数据,而要拿到数据字典的元数据,又必须先打开数据字典

1.7K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL8.0​ 字典增强的意义

    MySQL中数据字典是数据库重要的组成部分之一,INFORMATION_SCHEMA首次引入于MySQL 5.0,作为一种从正在运行的MySQL服务器检索元数据的标准兼容方式。...用于存储数据元数据、统计信息、以及有关MySQL server的访问信息(例如:数据库名或名,字段的数据类型和访问权限等)。 8.0之前: ?...1、元数据存在中 2、全部迁到mysql库下,改为innodb引擎,且被隐藏 3、information_schema下只能通过view查看 4、NULL的全部为view 5、存储在单独的空间...它也确实会尝试使用MySQL server层的缓存(系统变量table_definition_cache ),但是在大型实例中,很少有一个足够大的缓存来容纳所有的。...8.0 问世之后,又提供了一种选择,由于字典采用innodb引擎,而且字典可以使用索引。

    80130

    业务中的字典MySQL实现方案

    为什么需要字典? 某些变量在多个地方使用,而且一般固定,但随系统升级和后期变化,可能需要改变,如果这些变量写死在代码里面将会变得难以维护,所以要将其从代码中抽离。...设计字典 通常分成两张来实现,一个是字典类型,一个是字典 字典类型: SYS_DICT_TYPE 字段名 类型 作用 备注 code varchar 编码 主键 name varchar 类型 展示用...字典 : SYS_DICT ?...使用值 fixed int 是否是固定的 default 0不固定,固定的话用1 以上是字典的关键列和结构设计,根据不同系统不同业务自定其他列。...FAQ 字典类型应该不可编辑,因为字典类型通常会和具体代码实现紧密耦合,如果非要进行编辑话需要考虑到对代码的影响以及如何保证修改之后系统正常工作 字典分可编辑与不可编辑,所以在提供字典管理的时候需要注意

    3.8K22

    MySQL结构变更,不可不知的Metadata Lock

    一旦DDL操作因获取不到MDL被阻塞,后续其它针对该的其它操作都会被阻塞。典型如下,如阻塞稍久的话,我们会看到Threads_running飙升,CPU告警。...MySQL> show processlist; +----+-----------------+-----------+-----------+---------+------+-----------...MDL引入的背景 MDL是MySQL 5.5.3引入的,主要用于解决两个问题, RR事务隔离级别下不可重复读的问题 如下所示,演示环境,MySQL 5.5.0。...MDL出现的初衷就是为了保护一个处于事务中的的结构不被修改。 2. 这里提到的事务包括两类,显式事务和AC-NL-RO(auto-commit non-locking read-only)事务。...需要注意的是,MDL不仅仅适用于,同样也适用于其它对象,如下表所示,其中,"等待状态"对应的是"show processlist"中的State。

    38210

    MySQL】metadata lock问题

    一、Metadata lock MySQL使用DML来管理对数据库对象的并发访问,并确保数据一致性。...因此从MySQL5.5版本开始引入了MDL锁,来保护的元数据信息,用于解决或者保证DDL操作与DML操作之间的一致性。...一旦出现Metadata Lock Wait等待现象,后续所有对该的访问都会阻塞在该等待上,导致连接堆积,业务受影响。...所以在对表进行上述操作时,如果上有活动事务(未提交或回滚),请求写入的会话会等待在Metadata lock wait 。...五、总结 为了事务的串行话,和数据一致性, Mysql会对打开事务进行DML的加上table metadata lock,在事务提交前,其他的DDL操作会阻塞 对于主要是查询数据的项目来说,默认不开启事务即可

    1.4K10

    Oracle常用数据字典

    Oracle常用数据字典      查看当前用户的缺省空间   SQL>select username,default_tablespace from user_users;   查看当前用户的角色...  SQL>select * from user_role_privs;   查看当前用户的系统权限和级权限   SQL>select * from user_sys_privs;   SQL...>select * from user_tab_privs;   查看用户下所有的   SQL>select * from user_tables;      查看用户下所有的的列属性      ...default_tablespace from user_users;   查看当前用户的角色   SQL>select * from user_role_privs;   查看当前用户的系统权限和级权限...  查看用户下所有的   SQL>select * from user_tables;   查看名称包含log字符的   SQL>select object_name,object_id from

    69260

    深入浅出锁(Table Lock

    InnoDB的厉害之处还是实现了更细粒度的 行锁   MySQL级锁有两种模式 共享读锁(Table Read Lock独占写锁(Table Write Lock) 图片 意向锁 (intention...意向锁在保证并发性的前提下,实现了 行锁和锁共存且满足事务隔离性 的要求  自增锁(AUTO-INC锁) 在使用MySQL过程中,我们可以为的某个列添加 AUTO_INCREMENT 属性。...(2)innodb_autoinc_lock_mode = 1(“连续”锁定模式) 在 MySQL 8.0 之前,连续锁定模式是 默认 的。...(3)innodb_autoinc_lock_mode = 2(“交错”锁定模式) 从 MySQL 8.0 开始,交错锁模式是 默认 设置。...元数据锁(MDL锁) MySQL5.5引入了meta data lock,简称MDL锁,属于锁范畴。MDL 的作用是,保证读写的正确性。

    98240

    MySQL metadata lock 的A来B去

    这种锁定方法意味着一个会话内的事务正在使用的不能进行DDL 的操作,上的元数据锁可以防止对表结构的更改。...A: OK ,那我们就来做一个例子看看,我们在MYSQL 中打开两个操作窗口 其中一个进行事务操作,一个进行DDL 操作 ,然后我们看看metadata lock 的问题 窗口1 begin; select...从图中我们可以看到一个metadata lock 锁是由 5 个锁组成的 1 对于当前要操作的 shard_read lock 2 GLOBAL intention_exclusive...3 对于当前操作的 intention_exclusive 4 对于要操作的 exclusive 5 对于 metadata_locks 本身的 shard_read ?...我做实验去了 B: 诶,我做你的这个实验怎么什么都看不到 A :嗯我估计你有以下条件没有达到 1 MYSQL 5.7 版本 2 打开 performance_schema 收集信息的设置 UPDATE

    76430

    MYSQL 从Record lock 到 Next-Key Locks 到 GAP_LOCK

    MySQL 中有以下几种锁, Record lock, Gap lock, Next-key lock. Record lock 是基于索引记录的,也就是他上锁的目标不是记录本身而是索引。...你怎么枷锁我,实际上MYSQL的在你不做任何以上的工作时,MYSQL 会无奈的给你一个,A hidden Clustered index, (所以,建MYSQL 不自己建立聚簇索引,属于对MYSQL 耍流氓的行为...Next-key lock 这个东西默认是在你MYSQL 在 REPEATABLE READ 模式下,防止你幻读的。...中的性能其实也还值得深究,(其实有些大在处理唯一索引的时候也是如履薄冰,有坑) 我们最后在来一个死锁的案例 session A begin select id from table where id...这就是repeatable isolation 下的MYSQL NEXT-KEY LOCK & GAP LOCK 会遇到的问题。所以........ 我就不多说了

    1.3K30

    数据字典设计「建议收藏」

    为什么字典?...所以通常把字典放在数据库,这样后期的维护变更就比较简单,也可以在不用修改代码的情况下修改配置。还有,对于某些固定的数据字典(例如,星期,月份等)不允许修改。...具体设计 通常分成两张来实现,一个是字典类型,一个是字典: 注意 字典类型应该是不可编辑的,因为字典类型通常会和具体代码实现紧密耦合,如果非要进行编辑的话需要考虑到对代码的影响以及如何保证修改之后系统正常工作...字典分可编辑与不可编辑,所以在提供字典管理的时候需要注意fixed字段,针对固定的字典不提供编辑功能 字典与系统参数不要混为一谈,字典通常用于一类的数据,一组具有相同含义的数值(例如,供客户端下拉选择的枚举...优化 数据字典数据应该存放在 redis 中,减少与数据库的交互次数,提高响应速度 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/127126.html原文链接:https

    1.5K40
    领券