答:源端记录可复制变化,副本接收并写入中继日志,再由应用线程或工作线程重放。旧资料中的 master/slave 对应这里的 source/replica。
答:redo 用于重放需要恢复的页修改,undo 支持回滚和旧版本读取。崩溃恢复不只是把已提交 SQL 再执行一次,而是结合日志状态恢复数据并处理未完成事务。
答:不是物理上不能写。副本需要应用复制变化,某些账号或配置也可能允许直接写;生产通常通过 read_only、super_read_only 和权限限制业务误写,具体例外按产品规则确认。
答:副本可承接允许延迟的读取、承担部分备份或分析工作,并作为可用性方案的一部分。它们不需要都接受业务写入才有价值,但也不是越多越能无限扩展。
答:写入与需要最新结果的读取连接正确可写源端,允许复制延迟的读取可走副本。可以通过受控数据源路由或代理实现,但事务范围与连接取得时机必须明确。
答:MariaDB 起源于 MySQL 分支,已经独立演进。协议有兼容部分,但 GTID、复制、优化器、JSON、认证和排序规则等可能不同,不能把当前版本当成完全互换的同一产品。
答:CHAR 用于固定字符长度的值,VARCHAR 按实际长度存放并附带长度信息。选型主要看值的长度分布和尾空格语义,实际占用还受字符集和 InnoDB 行格式影响。
答:最多 50 个字符。VARCHAR 的声明长度按字符计算,常见汉字在 UTF-8 中占三个字节,部分扩展汉字占四个字节。行大小、索引长度和实际字符集仍会限制设计。
答:INT 是 4 字节整数,BIGINT 是 8 字节整数,范围不同。旧语法里的括号 10 是显示宽度,和可存十位数没有对应关系。现代建表直接写 INT 或 BIGINT。
答:旧教材常把更改缓冲、自适应哈希、双写和预读放在一起讲。它们分别涉及二级索引写入、热点查找、部分页写入保护和提前加载页面。MySQL 8.4 默认关闭自适应哈希,更改缓冲默认 none。