答:现代 MySQL 允许同一表、同一事件和同一时机有多个触发器。旧的六个组合限制不适用于 8.4。可以按规则指定同类触发器的相对顺序。
答:这个说法没有固定列表。可以从可移植性解释:MySQL 提供 ENUM、SET、各级 TEXT/BLOB 等具体类型,其他数据库可能用不同名字、约束和比较规则实现类似需求。
答:MySQL 通过账号匹配、认证以及权限检查决定谁能执行哪些操作。账号含用户与主机部分,权限可以来自直接授权和激活的角色。
答:普通读常用 MVCC 快照,锁定读和写入会保护相应记录或范围。不同业务可能出现读取旧值、并发覆盖、热点排队或死锁,需要分别处理。
答:副本先接收源端日志,再把接收的变化应用到自己的数据。接收进度和已应用进度不同,副本查询通常只能读到已应用的结果。
答:异步复制允许源端提交后继续发送日志,半同步要求在配置条件下等待至少指定数量的副本确认。确认通常不等于副本已经应用事务并可查询。
答:先分传输慢、应用慢和监控口径。网络或接收中断会让日志到不了,副本上的大事务、锁、慢存储和重读流量可能让应用追不上。
答:组合有序索引的前部列决定后部列怎样分组。给出最左一段的匹配条件,往往更容易定位连续范围。漏掉第一列并不代表索引在任何情况下完全不能用。
答:先定位容量瓶颈,确认单库的索引、查询、数据保留和扩展手段已无法满足目标,再考虑切分。分片键要兼顾热点分布、主要访问路径和迁移。
答:binlog 是 MySQL 服务器层的二进制日志,常用于复制和按位置或时间恢复。它按格式记录可复制变化,与 InnoDB 用于页恢复的 redo、用于回滚和旧版本的 undo 各有职责。