答:先确认去重的业务粒度,减少进入去重阶段的行和列,再看有序索引能否帮助。DISTINCT 的成本取决于数据量、列宽、连接与实际执行计划。
答:NOW() 返回当前日期时间,CURRENT_DATE() 返回当前日期。两者都受会话时区影响。选择时看需求是时间点附近的日期时间,还是业务所属日期。
答:现代 MySQL 允许同一表、同一事件和同一时机有多个触发器。旧的六个组合限制不适用于 8.4。可以按规则指定同类触发器的相对顺序。
答:这个说法没有固定列表。可以从可移植性解释:MySQL 提供 ENUM、SET、各级 TEXT/BLOB 等具体类型,其他数据库可能用不同名字、约束和比较规则实现类似需求。
答:MySQL 通过账号匹配、认证以及权限检查决定谁能执行哪些操作。账号含用户与主机部分,权限可以来自直接授权和激活的角色。
答:普通读常用 MVCC 快照,锁定读和写入会保护相应记录或范围。不同业务可能出现读取旧值、并发覆盖、热点排队或死锁,需要分别处理。
答:副本先接收源端日志,再把接收的变化应用到自己的数据。接收进度和已应用进度不同,副本查询通常只能读到已应用的结果。
答:异步复制允许源端提交后继续发送日志,半同步要求在配置条件下等待至少指定数量的副本确认。确认通常不等于副本已经应用事务并可查询。
答:先分传输慢、应用慢和监控口径。网络或接收中断会让日志到不了,副本上的大事务、锁、慢存储和重读流量可能让应用追不上。
答:组合有序索引的前部列决定后部列怎样分组。给出最左一段的匹配条件,往往更容易定位连续范围。漏掉第一列并不代表索引在任何情况下完全不能用。