答:先明确最多能丢多少数据、业务多久必须恢复,再选全量、增量或日志恢复策略。备份应验证可恢复,并考虑加密、访问权限和异地保存。
答:自增整数通常短,按主键聚簇写入时较有局部性,二级索引携带的主键也较小。这是常见设计取舍,表仍可使用合适的业务键或其他代理键。
答:MyISAM 索引叶子保存可定位数据文件记录的信息。InnoDB 聚簇索引叶子组织完整记录,二级索引叶子含对应主键。二级索引缺所需列时,InnoDB 通常再找聚簇记录。
答:没有一个固定数字。按结构可谈 B-tree、哈希等,按用途有全文和空间,按约束有主键和唯一,按列数又有单列与组合。可用能力取决于引擎和版本。
答:聚簇索引组织数据行,二级索引提供另一条定位路径,通常随索引键保存对应的主键。InnoDB 每表有一个聚簇组织,可以有多个二级索引。
答:失败或主动取消时,回滚撤销事务中仍可回滚的修改,避免只留下业务的一半。InnoDB 的 undo 支持撤销变化,也参与旧版本读取。
答:不可重复读关注同一行的值在两次读取间发生变化。幻读关注同一条件匹配的行集合变化,例如并发插入后多一条符合条件的记录。两者都要结合隔离和读取方式分析。
答:它们按受保护资源的粒度区分。InnoDB 常用索引记录及间隙等锁,MyISAM 常用表级锁。页级粒度是通用数据库概念,别把内部页闩锁当作 InnoDB 普通事务锁类型。
答:共享模式一般可与同资源的共享模式并存,排他模式要求排除不兼容访问。InnoDB 支持 FOR SHARE、FOR UPDATE 等锁定读,普通快照查询的行为另有规则。
答:乐观更新在写入时检查版本或原值,冲突后重新决策。悲观方式先锁住相应资源,竞争者可能等待或失败。判断依据是冲突频率、工作范围和失败成本。