文章目录
-
-
- 一.Mysql 基础
- 二.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 文件
- 四.Mysql 数据结构
- 五.Mysql 索引
- 六.Mysql 锁相关
- 七.主从复制
- 八.高阶原理
-
一.Mysql 基础
1.数据库与实例?
- 数据库:物理操作系统文件或其他形式文件类型的集合。在 MySQL 数据库中,数据库文件可以是 frm、MYD、MYI、ibd 结尾的文件。当使用 NDB 引擎时,数据库的文件可能不是操作系统上的文件,而是存放于内存之中的文件,但是定义仍然不变。
- 实例:MySQL 数据库由后台线程以及一个共享内存区组成。共享内存可以被运行的后台线程所共享。需要牢记的是,数据库实例才是真正用于操作数据库文件的。
从概念上来说,数据库是文件的集合,是依照某种数据模型组织起来并存放于二级存储器中的数据集合合;
数据库实例是程序,是位于用户与操作系统之间的一层数据管理软件,用户对数据库数据的任何操作,包括数据库定义、数据查询、数据维护、数据库运行控制等都是在数据库实例下进行的,应用程序只有通过数据库实例才能和数据库打交道。
2.mysql 的配置文件
MySQL 数据库是按/etc/mycnf>/etc/mysql/my.cnf→/usr/local/mysql/etc/mycnf~/mycnf 的顺序读取配置文件的。
如果几个配置文件中都有同一个参数,MySQL 数据库会以读取到的最后一个配置文件中的参数为准。在 Linux 环境
下,配置文件一般放在/etc/my.cnf 下。在 Windows 平台下,配置文件的后缀名可能是 cnf,也可能是 in