丰富的线上&线下活动,深入探索云世界
做任务,得社区积分和周边
最真实的开发者用云体验
让每位学生受益于普惠算力
让创作激发创新
资深技术专家手把手带教
遇见技术追梦人
技术交流,直击现场
海量开发者使用工具、手册,免费下载
极速、全面、稳定、安全的开源镜像
开发手册、白皮书、案例集等实战精华
为开发者定制的Chrome浏览器插件
1.下列功能是由TiKV或TiFlash实现的为?(选2项)A.根据集群中Region的信息,发出调度指令B.对于OLAP和OLTP进行业务隔离C.将关系型数据转化为KV存储进行持久化D.将KV存储转化为关系型数据返回给客户端E.配合TiDBServer生成事务的唯一IDF.副本的高可用和一致性学生答案:B.对于OLAP和OLTP进行业务隔离、F.副本的高可用和一致性
2.关于TiKV或TiDBServer,下列说法不正确的是?A.数据被持久化在TiKV的RocksDB引擎中B.对于老版本数据的回收(GC),是由TiDBServer在TiKV上完成的C.两阶段提交的锁信息被持久化到TiDBServer中D.Region可以在多个TiKV节点上进行调度,但是需要PD节点发出调度指令正确答案:C.两阶段提交的锁信息被持久化到TiDBServer中
1.下列哪些模块直接与TiDB的事务处理有关?(选2项)A.KVB.ParseC.SchemaloadD.TransactionE.GCF.startjob正确答案:A.KV、D.Transaction
2.关于关系型数据与KV的转化,下列说法不正确的是?A.如果没有定义主键,key中包含RowID,IndexID和TableID,都是int64类型B.TableID在整个集群内唯一C.如果定义了主键,那么将使用主键作为RowIDD.不需要为每张表指定主键
正确答案:C.如果定义了主键,那么将使用主键作为RowID
A.系统参数和元数据信息的持久化B.产生TSOC.分布式事务实现D.MVCCE.生成物理执行计划F.表统计信息的持久化
正确答案:A.系统参数和元数据信息的持久化、C.分布式事务实现、D.MVCC、F.表统计信息的持久化
2.关于TiKV数据持久化,下列说法不正确的是?A.RocksDB有2个实例,分别用来持久化raftlog和keyvalue数据B.RocksDB中WAL用来保证写不丢失C.对于删除操作,只需要在原keyvalue数据上标记已删除即可D.RocksDB中,除了Level0层的数据,其他Level都是单一排序持久化的
正确答案:C.对于删除操作,只需要在原keyvalue数据上标记已删除即可
1.下列关于PD(PlacementDriver)架构和功能正确的是?A.访问PD集群中的任何一个节点都可以获得TSOB.TiKV会周期性地向PD上报状态C.PD会周期性地查询TiKV的状态,不需要TiKV上报,目的是为了高效D.PD的调度功能只能平衡region的分布,无法对leader进行调度
正确答案:B.TiKV会周期性地向PD上报状态
正确答案:C.isolation-level要和数据中心(DC)对应,这样可以获得最大的可用性
1.下列关于DML语句读写说法正确的是?(选2项)A.RegionCache的主要作用是缓存热数据,减少访问TiKV的次数B.二阶段提交在获取事务开始的TSO和提交的TSO时,都是由TiDBServer完成的C.schedule模块采用latch来控制当前正在写的数据不被读取D.在写操作中,锁信息也会被写入到RocksDBKV中
正确答案:B.二阶段提交在获取事务开始的TSO和提交的TSO时,都是由TiDBServer完成的、D.在写操作中,锁信息也会被写入到RocksDBKV中
2.关于DDL语句的执行流程,下列说法正确的是?A.DDL语句可以在TiDB中并行执行B.同一时刻,不可以有多条DDL语句在等待执行C.同一时刻,只有一个TiDBServer可以执行DDL语句D.等待执行的DDL语句被持久化在TiDBServer的存储中
正确答案:C.同一时刻,只有一个TiDBServer可以执行DDL语句
1.关于TiDB数据库中SCHEMA的KV映射原理,描述正确的有?(选2项)A.聚簇表KV中VALUE存储的是真实的行数据B.创建表时,默认为聚簇表C.每一个Region按照左闭右开的区间划分数据存储范围,如[a~d),[d~g)D.非聚簇表如果有主键,则KV中的key会含有主键列E.非聚簇表如果在where条件中用主键过滤,也会回表
正确答案:C.每一个Region按照左闭右开的区间划分数据存储范围,如[a~d),[d~g)、E.非聚簇表如果在where条件中用主键过滤,也会回表
正确答案:D.PRE_SPLIT_REGIONS是列属性,在使用时写在自增列的后面
1.建表语句如下,请问下列哪几个查询会使用到索引idx_abc(请选择2项)CREATETABLEt(idINTNOTNULLPRIMARYKEYAUTO_INCREMENT,aINTNOTNULL,bINTNOTNULL,cINTNOTNULL,dINTNOTNULL,keyidx_abc(a,b,c));
A.select*fromtwherec=4anda=100andb<99;B.select*fromtwherec=100andb=99;C.selecta,b,c,dfromt;D.selecta,bfromt;
正确答案:A.select*fromtwherec=4anda=100andb<99;、D.selecta,bfromt;
2.下列关于TiDB数据库中索引的说法,不正确的是?A.TiDB在创建索引时不会阻塞表的数据读写B.二级索引的value值一般为NULLC.CLUSTERED类型的PRIMARYKEY是无法删除的D.所有函数都可以用于表达式索引
正确答案:D.所有函数都可以用于表达式索引
1.下列属于TiDB数据库系统表且在INFORMATION_SCHEMA库中的有?(请选择2项)
A.TRANSACTIONB.TIDB_HOT_REGIONSC.DATA_LOCK_WAITSD.TABLE_PRIVE.COLUMNS_PRIV
正确答案:B.TIDB_HOT_REGIONS、C.DATA_LOCK_WAITS
2.下列关于TiDB数据库SQL阻塞查询,不正确的是?A.DEADLOCKS表默认存储10次死锁信息B.TIDB_TRX表的查询需要具有PROCESS权限C.DATA_LOCK_WAITS只记录已经完结的事务中的阻塞信息《《===正在执行的,当前的锁信息。D.DATA_LOCK_WAITS记录的是悲观锁信息
正确答案:C.DATA_LOCK_WAITS只记录已经完结的事务中的阻塞信息
1.下面属于HTAP场景特点的是?(请选择3项)
A.在故障恢复方面可以做到RPO=0B.支持分区特性C.支持在线业务高并发D.同时支持OLTP和OLAP业务E.能够读取到一致性的数据
正确答案:C.支持在线业务高并发、D.同时支持OLTP和OLAP业务、E.能够读取到一致性的数据
2.关于MPP架构,下列说法不正确的是?A.MPP架构的中间结果都在内存中B.MPP架构可以作用于TiKV和TiFlash上的数据C.MPP架构目前不支持非等值joinD.MPP架构可以对聚合、JOIN等操作加速
正确答案:B.MPP架构可以作用于TiKV和TiFlash上的数据
1.下面属于TiFlash核心特性的是?(请选择3项)
A.采用行存+列存的混合存储方式B.region支持raft投票和选举C.TiFlash采用异步复制来保证和TiKV一致D.在TiKV上写入数据成功后,在TiFlash上可以一致性读取E.CBO基于成本选择在TiFlash或者TiKV上执行SQL
学生答案:C.TiFlash采用异步复制来保证和TiKV一致、D.在TiKV上写入数据成功后,在TiFlash上可以一致性读取、E.CBO基于成本选择在TiFlash或者TiKV上执行SQL正确答案:C.TiFlash采用异步复制来保证和TiKV一致、D.在TiKV上写入数据成功后,在TiFlash上可以一致性读取、E.CBO基于成本选择在TiFlash或者TiKV上执行SQL
2.关于TiFlash的使用,描述不正确的是?
A.TiFlash不善于处理高并发,QPS一般不应过高B.TiFlash建议混合部署在服务器上C.TiFlash支持全新部署和扩容两种部署方式D.部署TiFlash,要求开启PD的PlacementRules功能
学生答案:B.TiFlash建议混合部署在服务器上正确答案:B.TiFlash建议混合部署在服务器上
1.关于事务的四大特性(ACID)说法正确的是?(选2项)
A.事务中的所有操作要么都成功要么都失败,才能保证一致性B.持久性保证了数据不丢失C.隔离性保证事务在开始前和结束后完整性约束没有被破坏D.原子性和一致性与应用开发中的易用性和效率问题有关
正确答案:B.持久性保证了数据不丢失、D.原子性和一致性与应用开发中的易用性和效率问题有关
2.下列关于隔离级别说法,不正确的是?A.脏读不可能出现在可重复读环境B.未提交读可能出现不可重复读C.幻读只出现在可重复读场景D.Serializableread不支持并发读写
正确答案:C.幻读只出现在可重复读场景
2.下列关于Percolator事务执行流程,不正确的是?
正确答案:C.Prewrite操作不可以回滚
1.下列关于TiDB数据库事务实现,正确的是?(选2项)A.TiDB数据库乐观锁不需要在Lock列族中写入锁信息B.Write列族记录的是事务提交信息,或者说版本信息C.悲观锁下,我们需要将prewrite阶段提到DML操作中来做D.乐观锁下,事务在prewrite阶段检测写写冲突和锁冲突正确答案:B.Write列族记录的是事务提交信息,或者说版本信息、D.乐观锁下,事务在prewrite阶段检测写写冲突和锁冲突
2.下列关于TiDB的事务,不正确的是?A.写偏斜可以出现悲观锁模式或者乐观锁模式B.写偏斜可以出现在可重复读隔离级别或者提交读隔离级别C.是否使用forupdate在可重复读隔离级别有可能读到不同的值D.悲观锁模式遇到锁冲突时,默认会阻塞
正确答案:B.写偏斜可以出现在可重复读隔离级别或者提交读隔离级别
1.下列对于优化器流程的描述,正确的是?(选2项)
A.生成执行计划后,如果是点查则直接下推到SQL执行器中B.物理优化需要结合统计信息C.逻辑优化的产物是语法树(AST)D.以下为正确顺序:SQL解析器->逻辑优化->物理优化->SQL执行器
正确答案:B.物理优化需要结合统计信息、D.以下为正确顺序:SQL解析器->逻辑优化->物理优化->SQL执行器
2.下列优化项不属于逻辑优化的是?A.谓词下推B.外连接消除C.索引选择D.聚合消除E.MAX/MIN优化
正确答案:C.索引选择
1.下面哪些操作可能会引起线上执行计划的改变?(选3项)A.收集了某个表的统计信息B.在SQL中,将fromT1,T2,T3改为了fromT2,T3,T1C.在UPDATE语句中增加了HintD.将where条件中的a=bandb=5改写为a=5andb=5E.为某列添加索引,但是这列并没有出现在where条件中F.将from后的所有表名改为了大写
正确答案:A.收集了某个表的统计信息、C.在UPDATE语句中增加了Hint、E.为某列添加索引,但是这列并没有出现在where条件中
2.下列什么信息无法从EXPLAIN或者EXPLAINANALYZE的结果中获得?A.使用的索引B.算子是在TiDBServer还是在TiKV上完成的C.SQL语句实际输出的数据行数D.SQL语句执行过程中占用的网络带宽E.某个算子占用的内存空间大小
正确答案:D.SQL语句执行过程中占用的网络带宽
1.下面哪些项目是我们可以在收集表或者索引的统计信息时设置的?(选2项)
A.当表本身的读写压力很大时,停止自动收集统计信息B.某张表在收集统计信息时候的样本采样数目C.是否在收集统计信息时修改正在执行SQL的执行计划D.列直方图的桶数量上限E.当CPU负载达到阀值时,停止收集统计信息,减小负载
正确答案:B.某张表在收集统计信息时候的样本采样数目、D.列直方图的桶数量上限
正确答案:D.已经完成的分析的总耗时
1.下面哪些因素会影响在线索引创建的速度?(选2项)A.索引列是否有读写B.表列多少C.已有索引的个数D.tidb_ddl_reorg_worker_cnt参数的大小
正确答案:A.索引列是否有读写、D.tidb_ddl_reorg_worker_cnt参数的大小
2.下面哪个不是TiDB数据库使用的索引扫描算法?A.IndexRangeScanB.IndexFullScanC.PointGetD.IndexskipScanE.IndexLookup
正确答案:D.IndexskipScan
1.下列关于Prepared语句及PlanCache的说法正确的是?
A.避免TiDB重复解析和生成SQL执行计划的开销B.需要配合上层应用框架调用PrepareAPIC.对于JDBC,建议在连接参数中配置useServerPrepStmts=trueD.通过QuerySummary>QPSByInstance面板中的StmtPrepare请求可以判断是否使用Prepare语句
正确答案:A.避免TiDB重复解析和生成SQL执行计划的开销、B.需要配合上层应用框架调用PrepareAPI、C.对于JDBC,建议在连接参数中配置useServerPrepStmts=true、D.通过QuerySummary>QPSByInstance面板中的StmtPrepare请求可以判断是否使用Prepare语句
2.关于TiDBBackoff,下列说法错误的是?
正确答案:D.如果监控看到Backoff出现,说明集群可能存在问题
1.下列关于空region的说法正确的是?(选2项)
正确答案:B.频繁drop或truncate表可能导致空region过多、C.空region过多会影响正常的调度行为
2.关于tikv节点下线速度慢,下列说法错误的是?A.store-limit设置过低B.region数量较多,checker扫描速度过慢C.其他tikvstore可用空间不足D.下线tikv节点上没有leader
正确答案:D.下线tikv节点上没有leader
1.下列关于TiKV写入慢的原因错误的是?A.IO负载过高B.CPU负载过高C.Unifiedreadpool线程池过小D.TiKV节点间网络延迟高
正确答案:C.Unifiedreadpool线程池过小
2.关于TiKVCoprocessorduration延迟高的原因正确的是?(请选3项)A.大范围扫描B.小表读热点C.Cop线程池打满D.发生Writestall
正确答案:A.大范围扫描、B.小表读热点、C.Cop线程池打满
2.关于TiKV存在写热点问题的推断正确的是?A.gRPCCPU使用不均衡B.SchedulerworkerCPU使用不均衡C.UnifiedreadpoolCPU使用不均衡D.RaftstoreCPU使用不均衡
正确答案:A.gRPCCPU使用不均衡、B.SchedulerworkerCPU使用不均衡、D.RaftstoreCPU使用不均衡
1.下列关于DDL误操作,数据恢复方法描述正确的是?(请选2项)
A.RecoverTable适用于TruncateTable导致的数据误删除恢复B.RecoverTable仅可用于DropTable导致的数据误删除恢复C.FlashbackTable适用于DropTable以及TruncateTable导致的数据误删除恢复D.FlashbackTable能够实现对一张表多次进行恢复操作
正确答案:B.RecoverTable仅可用于DropTable导致的数据误删除恢复、C.FlashbackTable适用于DropTable以及TruncateTable导致的数据误删除恢复
2.基于MVCC数据恢复描述正确的是?(请选3项)
1.以下哪些因素,会引起TiDBServer内存使用异常?(请选3项)
A.大事务造成内存放大B.SQL执行计划错乱造成返回给TiDB大量非必要数据C.GO的内存回收机制,也可能导致内存占用量呈现异常的情况D.ADDIndex操作,在writereorg阶段也会大量占用内存
正确答案:A.大事务造成内存放大B.SQL执行计划错乱造成返回给TiDB大量非必要数据C.GO的内存回收机制,也可能导致内存占用量呈现异常的情况
2.在TiDBServer中,调整哪些参数,可以限制单条SQL的内存用量?(请选2项)A.mem-quota-query来设置单条SQL语句可以占用的最大内存阈值B.oom-use-tmp-storage开启临时磁盘功能C.rocksdb.defaultcf.block-cache-size调整RocksDBdefaultcf的内存占用量D.rocksdb.writecf.block-cache-size调整RocksDBwritecf的内存占用量
正确答案A.mem-quota-query来设置单条SQL语句可以占用的最大内存阈值B.oom-use-tmp-storage开启临时磁盘功能
1.TiKVServer进程占用的内存包括以下哪几个部分?(请选3项)A.PageCacheB.RocksDB-kvBlockCacheC.SQL查询的结果集在内存中的数据结构D.RaftStorechannel以及Applychannel中的消息
正确答案:B.RocksDB-kvBlockCache、C.SQL查询的结果集在内存中的数据结构、D.RaftStorechannel以及Applychannel中的消息
2.遇到TiKVServerOOM的情况后,通常从哪些方面进行排查?
A.检查storage.block-cache.capacity参数设置是否过大,一般情况下为服务器内存的45%B.查看block-cache的命中是否率低,如果偏低,那么需要确认pagecache的占用情况C.检查是否出现了gPRC发送的速度跟不上Coprocessor的情况,TiKV-Details-->CoprocessorOverview-->TotalResponseSize是否超过网卡的networkoutbound流量D.排查下当前集群环境中是否有返回结果集比较大的SQL,并进行优化
正确答案:A.检查storage.block-cache.capacity参数设置是否过大,一般情况下为服务器内存的45%、C.检查是否出现了gPRC发送的速度跟不上Coprocessor的情况,TiKV-Details-->CoprocessorOverview-->TotalResponseSize是否超过网卡的networkoutbound流量、D.排查下当前集群环境中是否有返回结果集比较大的SQL,并进行优化
1.关于热点,描述正确的是?(请选择2项)
A.Region是按照hash进行分片,导致热点非常容易产生B.热点类型分为读热点和写热点C.行数据的key编码规则包括tableid以及rowid,同一个表的数据会在以表ID开头为前缀的一个Region中,数据的顺序按照RowID的值顺序排列,故容易出现insert写热点D.出现读热点的Region,一般情况下也会出现写热点
正确答案:B.热点类型分为读热点和写热点、C.行数据的key编
2.关于热点的解决方案,描述正确的是?
A.非int以及bigint类型的pk,可以使用SHARD_ROW_ID_BITS和PRE_SPLIT_REGIONS的方式来打散insert写入热点B.Bigint类型的pk,可以使用AUTO_RANDOM的方式打散insert写入热点C.小表频繁访问,造成的读热点,可以尝试使用LoadBaseSplit基于qps和流量来进行自动的split打散D.执行计划不合理引起的非必要全表/错误的索引扫描,导致大范围的数据扫描造成的读热点,需要进行SQL优化来规避
正确答案:A.非int以及bigint类型的pkB.Bigint类型的pk,可以使用AUTO_RANDOM的方式打散insert写入热点、C.小表频繁访问,造成的读热点,可以尝试使用LoadBaseSplit基于qps和流量来进行自动的split打散、D.执行计划不合理引起的非必要全表/错误的索引扫描,导致大范围的数据扫描造成的读热点,需要进行SQL优化来规避
1.关于PD调度,描述正确的是?(请选择3项)A.可以通过调整leader-weight和region-weight,来影响某个Store上的leader和region分布情况B.查看调度的信息,主要是通过监控metrics、pd日志、pd-ctl工具C.调度只能由Scheduler产生D.如果RegionHeartbeat异常,可能会影响调度的产生和执行
正确答案:A.可以通过调整leader-weight和region-weight,来影响某个Store上的leader和region分布情况、B.查看调度的信息,主要是通过监控metrics、pd日志、pd-ctl工具、D.如果RegionHeartbeat异常,可能会影响调度的产生和执行
ABC
1.以下说法正确的是
A.Scheduler线程池,负责检测读写事务冲突检测,如果检测发生冲突会等待,超时后将事务回滚B.在Raftstore线程池,写请求都会先在Raftstore线程fsync的方式写入RocksDB,由于存在I/O,Raftstore线程理论上不可能达到100%的CPUC.UnifyReadPool负责处理所有底层的读写取请求,是最下面的一层线程池,但是此线程池不建议设置过大,否则容易出现线程频繁切换反而浪费cpu的情况D.Scheduler线程池本身会进行一些写的操作,减轻raftstore的压力
正确答案:B.在Raftstore线程池,写请求都会先在Raftstore线程fsync的方式写入RocksDB,由于存在I/O,Raftstore线程理论上不可能达到100%的CPU
2.关于asyncwrite说法正确的是(请选择3项)
A,C,D
1.TiDB中数据读取流程描述正确的是?(请选择合适的选项)
A.SQL在TiDBServer侧完成解析,逻辑优化,物理优化后,生成执行计划等B.物理执行计划会根据请求类型分别调用KVGetAPI以及DistSQLAPI经过TiKVClient通过gRPC发送给TiKVServerC.UnifiedReadPool会根据优先级以及执行时长的不同被放到不同的任务队列中D.KVGet以及非KVGet,都会构造一个snapshot
a,b,c,d
2.在遇到集群出现读数据慢的情况时,建议查看哪些监控或日志?(请选择3项)
A.通过TiDBDashboard查询Slowquery菜单/SQL语句分析菜单,判断集群中SQL的执行计划是否发生过变化B.TiKV-Details-->ThreadCPU-->GCworkerCPU是否被打满C.根据TiDBDashboard流量可视化菜单,判断集群中是否有读热点D.TiKV-Details-->ThreadCPU-->UnifiedreadpoolCPU是否被打满
ACD
2.关于TiDB数据库的高可用特性,描述不正确的是?
A.PD的高可用主要靠集成在其内部的etcd来完成leader选举B.Raft的默认副本数为3,TiKV为5个节点,当有2个TiKV节点不可用时,不会影响系统的可用性C.靠TiDBserver不能完成自动故障转移D.三副本的TiKV中当只有一个副本可用时,整个系统不可用
正确答案:B.Raft的默认副本数为3,TiKV为5个节点,当有2个TiKV节点不可用时,不会影响系统的可用性
Lesson311.下列关于各个高可用架构的RPO描述正确的有?(请选择2项)ab
A.同城三中心架构当任意一个数据中心不可用,可以做到RPO为0的恢复B.同城两中心的同步模式当任意一个数据中心不可用,可以做到RPO为0的恢复C.同城两中心的异步模式当任意一个数据中心不可用,可以做到RPO为0的恢复D.两地三中心当任意两个数据中心不可用,可以做到RPO为0的恢复E.异步复制当主集群不可用,可以做到RPO为0的恢复
2.关于TiDB高可用架构说法不正确的是?B
A.两地三中心架构的在灾备城市一般无法做到同步复制B.同城三中心的事务(写操作)不需要跨数据中心C.同城两中心的事务(写操作)在同步模式下需要跨数据中心D.同城两中心在异步模式下如果灾备中心不可用,整个系统依然可用