# 1. 位图编码(Bitpacking)对低基数列的压缩 A Bitpacking 按实际最小位宽打包整数,低基数列(映射为小 ID)位宽小、压缩率高,常与字典编码配合 ✓ 正确答案 B Bitpacking 固定用 32 位存储每个整数 C Bitpacking 是损失性压缩 D Bitpacking 只适用于高基数列
# 2. 向量化 Hash 聚合的批量探测 A 对一批 key 批量算哈希、探测哈希表并 SIMD 累加聚合值,配合 radix 分区提升缓存命中,显著提升分组聚合吞吐 ✓ 正确答案 B 哈希聚合只能逐 key 处理 C 批量探测无法聚合 D 哈希聚合不需要哈希表
# 3. 向量化 Hash Join 的构建/探测批处理 A 构建阶段批量建哈希表、探测阶段批量匹配,用 SIMD 哈希/比较与 radix 分区提升缓存命中,实现吞吐高的 join ✓ 正确答案 B Hash Join 的构建和探测都只能逐行进行 C 探测阶段不需要哈希表 D radix 分区会降低 join 性能
# 4. 向量化排序(基数排序)的应用 A 基数排序基于比较,复杂度 O(nlogn) B 基数排序按位分桶、无比较,可 SIMD 向量化,适合整型 key 排序,配合 SIMD 提升吞吐 ✓ 正确答案 C 基数排序只适用于字符串 D 基数排序无法向量化
# 5. 向量化引擎的算子融合(operator fusion) A 算子融合把相邻算子合并为一次遍历,减少中间结果物化与调度开销,提升缓存与执行效率 ✓ 正确答案 B 算子融合会增加中间数据物化 C 算子融合只适用于 join D 算子融合会降低性能
# 6. 向量化执行中的分支预测优化 A 用 SIMD 比较生成掩码、以掩码/位运算替代逐行 if 分支,降低分支预测失败率,提升吞吐 ✓ 正确答案 B 分支预测失败对性能无影响 C 分支越多越好 D 向量化无法避开分支
# 7. ProxySQL 的读写分离与主从延迟感知 A 用查询规则按 SQL 类型路由读写到不同 hostgroup,并检查从库复制延迟,超过阈值则摘除该从库避免读到陈旧数据 ✓ 正确答案 B ProxySQL 无法感知主从延迟 C 所有请求都必须走主库 D 读流不分发到从库
# 8. ProxySQL 在分库分表前的流量治理 A ProxySQL 提供连接池、读写分离、限流、路由与监控等统一治理,为分库分表前的流量演进与后端隔离做准备 ✓ 正确答案 B ProxySQL 只能做请求转发,不能治理流量 C ProxySQL 会破坏分库分表 D 流量治理与分库分表无关
# 9. 轻量压缩(Lightweight Compression)在内存中的解码 A 轻量压缩用 SIMD 友好的编码按块批量解码,解码开销远小于带宽节省,适合内存常驻列与向量化计算 ✓ 正确答案 B 内存数据压缩后无法解码使用 C 轻量压缩解码极慢 D 内存压缩只用于磁盘
# 10. ProxySQL 的查询路由规则(mysql_query_rules) A 查询规则按随机顺序匹配 B 规则只能匹配 IP,不能匹配 SQL C mysql_query_rules 按 rule_id 优先级匹配 SQL,命中后路由到目标 hostgroup 并可 apply 终止,支持读写分离、路由与治理 ✓ 正确答案 D 规则无法热更新
# 11. ProxySQL 的连接多路复用(multiplexing) A 每个客户端都独占一条后端连接 B 多路复用让多个客户端共享少量后端连接,显著降低后端连接数,但事务/会话状态请求需独占连接不能复用 ✓ 正确答案 C 多路复用会强制所有请求共享同一连接 D 复用与事务状态无关
# 12. ProxySQL 的查询重写(rewrite)能力 A ProxySQL 不能修改 SQL B 通过 match_pattern 匹配 + replace_pattern 正则替换改写 SQL,可与路由结合实现不改应用的查询调整 ✓ 正确答案 C 重写会破坏所有查询 D 重写只能改库名,不能改 SQL
# 13. ProxySQL 的管理接口与运行时配置 A ProxySQL 配置修改后必须重启才生效 B 管理接口用 SQL 管理配置,经 memory→runtime→disk 三级加载,支持热更新与持久化 ✓ 正确答案 C 控制台与客户端接口共用同一端口 D 配置无法保存到磁盘
# 14. 差分编码对时序/自增列的效果 A 差分编码对随机列压缩率最高 B 差分编码只适用于字符串 C 差分编码会增加存储 D 时序/自增列相邻差小,差分后数值小、用更少位数表示,压缩率极高,可用 Delta-of-Delta、Varint 等变体 ✓ 正确答案
# 15. 字典编码的全局/局部字典选择 A 全局字典和局部字典完全没有区别 B 字典编码不能用于高基数 C 全局字典利于跨块谓词/join 优化但维护成本高,局部字典简单自适应但缺跨块优化,按基数与更新频率选择 ✓ 正确答案 D 局部字典跨块 ID 统一
# 16. 压缩与查询性能(解压代价)的权衡 A 压缩率越高越好,无需考虑解压 B 压缩和解压完全无关 C 高压缩省 IO 但解压 CPU 高,需分层算法、按需解压与 SIMD 解压让总 IO+CPU 成本最小 ✓ 正确答案 D 解压代价永远可忽略
# 17. 列式压缩在对象存储上的传输优化 A 对象存储读取必须下载整个文件 B 压缩会增加传输量 C 对象存储不支持 Range 读取 D 列式压缩减少传输字节,配合 Range 按需读取、footer 元数据先读与并行下载,只传输所需列与块 ✓ 正确答案
# 18. 自适应编码(根据数据特征选择) A 自适应编码固定使用一种编码 B 自适应编码只考虑压缩率,不考虑解码 C 自适应编码根据数据块特征(基数、重复、有序、位宽)自动选择最优编码,兼顾压缩率与解码性能 ✓ 正确答案 D 数据特征无法影响编码选择
# 19. 编码对 SIMD 解码友好的设计 A 变长编码(Varint)最利于 SIMD 解码 B SIMD 解码需要逐元素分支 C 固定宽度、规则布局、无分支、可批量解码的编码(如 Bitpacking、定宽字典)对 SIMD 友好 ✓ 正确答案 D 编码与解码性能无关
# 20. 向量化过滤(选择)的位图结果集 A 向量化过滤用掩码位图标记满足的行,可紧凑传递、延迟物化、用位运算组合条件 ✓ 正确答案 B 过滤后必须立即物化所有列 C 位图无法表示过滤结果 D 过滤与位图无关
# 21. 向量化表达式求值的批量执行 A 表达式必须逐行解释求值 B 表达式求值与向量化无关 C 批量求值无法处理 null D 表达式编译为对列向量的批量操作序列,SIMD 批量计算并处理 null,消除逐行解释开销 ✓ 正确答案
# 22. 向量化执行与 JIT 编译的组合 A JIT 与向量化互斥 B JIT 只能用于解释执行 C JIT 编译无启动开销 D 向量化提供批处理框架,JIT 把热路径编译为特化机器码(含 SIMD),消除解释开销,两者结合提升性能 ✓ 正确答案
# 23. ProxySQL 的查询缓存与黑名单 A 查询缓存不能减少后端压力 B ProxySQL 无法实现查询缓存 C 黑名单会缓存在结果 D 查询缓存通过 cache_ttl 缓存高频查询结果,黑名单通过规则拒绝/限流异常查询,共同实现减负与防护 ✓ 正确答案
# 24. ProxySQL 的故障转移与健康检查 A ProxySQL 不做健康检查 B ProxySQL 定期探测后端(SELECT 1),失败则摘除并从路由中剔除,恢复后重新加入,实现自动故障转移 ✓ 正确答案 C 健康检查失败也会继续路由流量 D 故障转移与健康检查无关