1、MySQL 的复制原理以及流程
(1)、先问基本原理流程,3 个线程以及之间的关联;
1:原理与流程
异步的复制过程,由三个线程来完成,(SQL 线程和 I/O 线程)在 Slave 端,
另外一个线程(I/O 线程)在 Master 端。
注意:
首先必须打开 Master 端的 Binary Log,因为整个复制过程实际上就
是 Slave 从 Master 端获取该日志然后再在自己身上完全顺序的执行日志中所
记录的各种操作。
注意:从主机拷贝到备机过程中会有延迟,延迟通常由网络、资源可用性和系统负载来
决定。使用合适架构和调优,大多复制几乎是瞬间完成的。
注意:主机将更新写入二进制日志文件,并对日志维护一个索引,保持日志轮流跟踪。
日志作为更新记录发送到从机。当从机连接到主机时,会检查日志最后一次更新成功最近位
置。然后接受自那时以来的所有更新,之后从机便等待主机通知新的更新。
(2)、再问一致性延时性,数据恢复;
(3)、再问各种工作遇到的复制 bug 的解决方法。
2、MySQL 中 myisam 与 innodb 的区别,至少 5 点
(1)、问 5 点不同;
(2)、问各种不同 mysql 版本的 2 者的改进;
(3)、2 者的索引的实现方式。
1-构成上的区别:
每个 MyISAM 在磁盘上存储成三个文件。第一个文件的名字以表的
名 字 开 始 , 扩 展 名 指 出 文 件 类 型 。
.frm 文 件 存 储 表 定 义 。
数 据 文 件 的 扩 展 名 为 .MYD (MYData) 。
索引文件的扩展名是.MYI (MYIndex)。
基于磁盘的资源是 InnoDB 表空间数据文件和它的日志文件,
InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB
3、问 MySQL 中 varchar 与 char 的区别以及 varchar(50)中的 30 代表的涵义
(1)、varchar 与 char 的区别;
(2)、varchar(50)中 50 的涵义;
(3)、int(20)中 20 的涵义;
(4)、为什么 MySQL 这样设计。