• Metadata 结构变化
      - 5.7 版本问题
      - 两套数据字典信息(Server层 oldguo.frm,InnoDB 数据字典)
      - DDL无原子化
      - frm和innodb层会出现不一致
      - 并发处理需要小心处理(MDL,dict_sys::mutex,dict_sys::rw_lock)
      - 崩溃无法恢复
      drop table a,c ;
      - 8.0 变化
      - 支持事务性DDL,崩溃可以回滚,保证一致。
      drop table a,c;
      - 保留一份数据字典信息,取消frm数据字典。
      - 数据字典存放至InnoDB表中
      - 采用套锁机制,管理数据字典的并发访问(MDL)2.2 实例结构(boss+M+W+offiffiffice,
      mysqld+MasterT+WORKT+MEM)
      2.2.1MySQL 的内存结构
      - 全新的Plugin支持
      - 8.0.17+ 加入Clone Plugin,更好的支持MGR,InnoDB Cluster的节点管理
      - 安全加密方式改变
      - 改变加密方式为caching_sha2_password
      - SSL 将支持到 TLSv1.3 版本。
      - 用户管理及认证方式改变
      - 改变授权管理方式
      create user oldguo@’10.0.0.%’ identified by .,..
      - 加入role角色管理
      - 添加更多权限
      - 原子性DDL
      - 支持原子性DDL
      - Cache && Buffer的变化
      - 取消Query Cache
      面试题: 请你说明8.0的新特性

    2.实例结构(boss+M+W+offiffiffice,
    mysqld+MasterT+WORKT+MEM)
    2.1MySQL 的内存结构
    image.png
    image.png
    实例: mysqld + Master Thread + Worker Threads + MEM
    2.3 MySQL SQL语句处理逻辑及源码结构 *
    SQL语句执行流程:
    连接层: 提供连接协议、验证、提供专用连接线程
    SQL层 : 解析预处理、优化(逻辑、物理)、执行
    物理优化时,会参考统计信息? 优化器算法?
    存储引擎层: 负责和磁盘交互
    一条SQL 语句,昨天运行好好的(0.01秒),突然变慢了(2Min)?为什么?
    统计信息不准确造成,不走索引造成的。
    统计信息是什么?
    统计信息记录的是,表的状态信息,比如表名、数据行、数据分布、索引状态信息。。。
    统计信息是MySQL定期收集而来的,同过一些参数指标控制。不是实时收集的。
    mysql.innodb_index_stats
    mysql.innodb_table_stats
    mysql> analyze table world.city;
    mysql> optimize table world.city;
    我看我们公司的数据库这个参数都是打开的innodb_numa_interleave
    = ON
    BIOS ——》 OS kernel ——> db
    Qcache_hits、Qcache_not_cached这个值正常么
    MySQL的查询缓存并非缓存执行计划,而是查询及其结果集,这就意味着只有相同的查询操作才能命中缓存,
    因此MySQL的查询缓存命中率很低
    select from t1 where id=1; ——> hash : 结果
    select
    from t1 where id= and name =’zs’; —-》 hash XXXX
    8.0 默认取消了QC