【檀越剑指大厂--mysql】mysql高阶篇

文章目录

      • 一.Mysql 基础
        • 1.数据库与实例?
        • 2.mysql 的配置文件
        • 3.mysql 体系结构
        • 4.innodb 的特点?
        • 5.innodb 和 myisam 的区别
        • 6.其他存储引擎?
        • 7.什么是物理日志和逻辑日志?
        • 8.什么是异步 IO?
        • 9.QPS 和 TPS
      • 二.Innodb 引擎特性
        • 1.InnoDB 的关键特性?
        • 2.什么是插入缓冲?
        • 3.什么是 Change Buffer?
        • 4.什么是 merge insert buffer?
        • 5.什么是二次写?
        • 6.什么是自适应哈希索引?
        • 7.什么是刷新邻接页?
        • 8.什么事 MRR 优化?
        • 9.什么是 ICP 优化?
        • 10.如何避免离散读?
        • 11.说说 purge 操作?
        • 12.如何保证二进制和事务提交的一致性?
        • 13.InnoDB 的后台线程?
        • 14.innodb 内存分配?
        • 15.LRU List,Free List,Flush list 区别?
        • 16.针对全表扫描,如何保证热点数据不被冲掉?
        • 17.压缩页的表?
        • 18.什么是 checkpoint?
        • 19.group commit 有什么好处?使用时需要注意什么?
      • 三.Mysql 文件
        • 1.mysql 文件有哪些?
        • 2.二进制日志的作用?
        • 3.说说 binlog_format 参数?
        • 4.表空间文件?
        • 5.重做日志块?
        • 6.重做日志缓冲?
        • 7.重做日志文件?
        • 8.重做日志的格式?
        • 9.undo log 和 redo log?
        • 10.什么是 LSN?
        • 11.详细说下 undo log?
        • 12.redo log 和 bin log?
      • 四.Mysql 数据结构
        • 1.mysql 使用的索引数据结构是什么?
        • 2.高度为 4 的 B+树能存储多少数据?
        • 3.为什么选用 B+树做索引?
        • 4.为什么不用 hash 表做索引?
        • 5.什么是索引组织表?
        • 6.innodb 逻辑存储结构
        • 7.共享表空间
        • 8.innodb 中的段
        • 9.innodb 中的区
        • 10.innodb 中的页
        • 11.innodb 中的行
        • 12.行格式的种类
        • 13.行溢出数据
        • 14.innodb 的页结构
      • 五.Mysql 索引
        • 1.什么是聚集索引?
        • 2.什么是辅助索引?
        • 3.什么是联合索引?
        • 4.什么是覆盖索引?
        • 5.什么是最左前缀原则?
        • 6.什么是自适应 hash 索引?
        • 7.什么是全文索引?
        • 8.全文索引的语法有了解吗?
        • 9.如何选择表的列作为索引更加有效?
        • 10.约束
        • 11.什么是视图?
        • 12.优化器不使用索引的情况
      • 六.Mysql 锁相关
        • 1.事务的分类?
        • 2.什么是事务的 ACID?
        • 3.mysql 事务隔离级别?
        • 4.innodb 中的锁有哪几种?
        • 5.innodb 意向锁?
        • 6.自增长锁?
        • 7.lock 和 latch 的区别?
        • 8.什么是一致性非锁定读的?
        • 9.一致性锁定读?
        • 10.innodb 行锁的三种算法?
        • 11.next-key lock 有什么作用?
        • 12.什么是丢失更新?如何避免?
        • 13.什么是脏读?
        • 14.如何预防数据库死锁?
        • 15.mysql 分布式事务有了解吗?
        • 16.mysql 自身有没有需要考虑分布式事务的?
        • 17.如何解决幻读问题?
      • 七.主从复制
        • 1.主从复制的原理?
        • 2.SBR 和 RBR?
        • 3.主从复制有几种方式?
        • 4.主从复制有什么好处?
        • 5.mysql 的热备和冷备?
      • 八.高阶原理
        • 1.什么事 FIC?
        • 2.有没有比 FIC 更好的方式?
        • 3.详细说说 Cardinality?
        • 4.什么是离散读?
        • 7.Mysql 如何获取数据页?
        • 8.innodb 主键自增是如何保证的?
        • 9.mysql 单表优化有什么经验吗?
        • 10.表分区有什么优缺点?
        • 11.表分区有几种方式?
        • 12.垂直拆分和水平拆分?
        • 13.分片有什么需要注意的吗?

一.Mysql 基础

1.数据库与实例?
  • 数据库:物理操作系统文件或其他形式文件类型的集合。在 MySQL 数据库中,数据库文件可以是 frm、MYD、MYI、ibd 结尾的文件。当使用 NDB 引擎时,数据库的文件可能不是操作系统上的文件,而是存放于内存之中的文件,但是定义仍然不变。
  • 实例:MySQL 数据库由后台线程以及一个共享内存区组成。共享内存可以被运行的后台线程所共享。需要牢记的是,数据库实例才是真正用于操作数据库文件的。

从概念上来说,数据库是文件的集合,是依照某种数据模型组织起来并存放于二级存储器中的数据集合合;

数据库实例是程序,是位于用户与操作系统之间的一层数据管理软件,用户对数据库数据的任何操作,包括数据库定义、数据查询、数据维护、数据库运行控制等都是在数据库实例下进行的,应用程序只有通过数据库实例才能和数据库打交道。

2.mysql 的配置文件

MySQL 数据库是按/etc/mycnf>/etc/mysql/my.cnf→/usr/local/mysql/etc/mycnf~/mycnf 的顺序读取配置文件的。
如果几个配置文件中都有同一个参数,MySQ

你可能感兴趣的:(s总,檀越剑指大厂,java,mysql)