列表

详情


某在线系统使用的是DRDS,其中订单表保存了用户订单信息,目前订单表的分库键为订单标识。事实上基于该订单表的常见查询中经常用到的查询条件除了订单标识外,还有用户标识,为了减少库的扫描,保证这两类常用查询的性能,可以采取以下哪些方案?


A. 如果同一个查询中只出现一个字段,则可以使用异构索引表

B. 如果同一个查询中同时出现这两个字段,则创建基于这两个字段的索引

C. 如果同一个查询中同时出现这两个字段,可调整表结构,其中一个字段作为分库键,另一个字段作为分表键

D. 如果同一个查询中只出现一个字段,则新建一张结构相同但是分库键为用户标识的表,将数据从源表加载进来,同时维护两张表的数据

参考答案: CD

详细解析:

[CD]在 DRDS 中,一张逻辑表的拆分方式是由拆分函数(包括分片数目与路由算法)与拆分键(包括拆分键的 MySQL 数据类型)共同定义。只有当 DRDS 的分库函数与分表函数相同并且分库键与分表键也相同时,才会被认为分库与分表都使用了共同的拆分方式。这样的方式可以让 DRDS 可以根据拆分键的值唯一定位到一个物理分库与一张物理分表。当一张逻辑表的分库拆分方式与分表拆分方式不一致时,若 SQL 查询没有同时带上分库条件与分表条件,则 DRDS 在查询过程会产生全分库扫描或全分表扫描的操作。


上一题