版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年居民信息数据库维护考核试卷(附答案)一、单项选择题(本大题共20小题,每小题1.5分,共30分。在每小题给出的四个选项中,只有一项是符合题目要求的)1.在居民信息数据库中,存储身份证号时,为了防止内部数据库管理人员直接查看明文,最合适的安全防护技术是()。A.透明数据加密(TDE)B.哈希散列存储C.动态数据脱敏D.对称加密存储2.某MySQL居民信息库使用InnoDB引擎,当执行一条范围查询`SELECT*FROMresident_infoWHEREageBETWEEN20AND30`时,若`age`字段上建有普通索引,此时数据库的默认隔离级别为可重复读(REPEATABLEREAD),为防止幻读现象发生,InnoDB引擎会采用()机制。A.间隙锁与临键锁B.表级共享锁C.行级共享锁D.意向排他锁3.居民信息数据库每日产生大量变更日志。在MySQL的主从复制架构中,从库通过IO线程和SQL线程实现数据同步。若主库突然宕机,且从库IO线程尚未拉取最新的事务日志,此时若强行将从库提升为主库,会导致()。A.主从数据完全一致B.从库丢失部分已确认提交的事务C.从库数据文件损坏D.主从复制中断且无法恢复4.在分布式居民信息数据库系统中,CAP定理是基础理论。当系统发生网络分区时,如果系统选择保证可用性(A)和分区容错性(P),则必须放弃()。A.持久性B.一致性C.原子性D.隔离性5.在进行居民信息表的历史数据归档时,常使用分区表技术。若按照居民落户时间进行范围分区,以下关于分区表优点的描述,错误的是()。A.可以显著减少全表扫描的数据量,提升查询性能B.不同分区的数据可以分布到不同的物理磁盘上,实现I/O负载均衡C.可以直接对单个分区进行删除操作,快速清理过期历史数据D.建立分区表后,所有的查询语句无需修改即可自动实现跨分区并行查询6.针对居民信息数据库的备份策略,某市决定每周日凌晨2点进行全量备份,周一至周六凌晨2点进行增量备份。若周三下午3点发生误删表事故,恢复数据的基本步骤是()。A.先恢复周日的全量备份,再依次恢复周一、周二的增量备份B.直接恢复周三的增量备份C.先恢复周二的增量备份,再恢复周日的全量备份D.恢复周日的全量备份后,应用周三的Binlog日志7.在数据库性能监控中,缓冲池命中率是衡量内存利用效率的关键指标。对于InnoDB引擎,如果缓冲池命中率长期低于90%,最合理的优化措施是()。A.增加数据库连接数限制B.扩大InnoDB缓冲池大小或优化慢查询减少全表扫描C.升级CPU核心数D.将数据库引擎更改为MyISAM8.居民信息表中的`id_card`字段经常被用于等值查询和关联查询。为了提高查询效率并防止数据泄露,以下建表或索引操作中最合理的是()。A.在`id_card`上建立聚簇索引并明文存储B.在`id_card`上建立唯一非聚簇索引,并使用不可逆哈希存储C.在`id_card`上建立全文索引D.将`id_card`字段拆分为多个子字段分别建立联合索引9.某应用系统需要查询某街道下所有居民的姓名、联系方式及居住地址。已知居民表`resident`有100万行,街道表`street`有500行。查询语句为:`SELECT,r.phone,r.addressFROMresidentrJOINstreetsONr.street_id=s.idWHERE='幸福街道'`。以下优化方案中,效果最佳的是()。A.在`resident.phone`上建立索引B.在``上建立索引,并在`resident.street_id`上建立索引C.在``上建立索引D.将JOIN改为子查询10.根据数据生命周期管理原则,居民信息在系统中需遵循保留策略。对于已注销户口的居民信息,在满足国家法规要求的留存年限后,需要进行销毁处理。以下销毁方式中,最彻底且不可逆的是()。A.执行`DELETEFROMresident_infoWHEREstatus='cancelled'`B.执行`TRUNCATETABLEresident_info`C.使用覆写算法对存储介质上的数据块进行多次物理覆写D.将数据库文件移至回收站并清空11.在SQL语句的执行流程中,优化器负责生成执行计划。若发现某条针对居民信息的查询SQL执行极其缓慢,查看执行计划发现使用了全表扫描,而实际上该查询字段已建立索引。以下原因中不可能的是()。A.查询条件中使用了函数包裹索引列,如`WHERELEFT(id_card,6)='110101'`B.查询条件中存在隐式类型转换,如`WHEREphone(phone为字符串类型)C.优化器评估认为通过索引回表的成本高于全表扫描的成本D.数据库的隔离级别设置为了读未提交(READUNCOMMITTED)12.在PostgreSQL数据库中,MVCC(多版本并发控制)机制是其实现高并发的核心。关于PostgreSQL的MVCC,以下说法正确的是()。A.更新数据时直接在原数据行上加排他锁并修改数据B.删除数据时会立即物理清除该行数据C.更新和删除操作会产生新的行版本,需要通过VACUUM机制清理旧版本D.读操作会阻塞写操作,写操作也会阻塞读操作13.某省级居民信息系统采用分库分表架构,以居民身份证号哈希取模作为分片键。随着常住人口增长,单个分片数据量再次达到瓶颈。若要实现在线平滑扩容(增加分片数),以下最稳妥的方案是()。A.停机维护,直接修改分片规则并使用数据同步工具重写全量数据B.采用一致性哈希算法,并在新增节点时进行数据迁移,迁移期间新旧双写C.将所有数据汇总到一个大型分布式文件系统中,放弃关系型数据库D.直接复制原有分片到新节点,不修改应用层路由配置14.在Redis作为居民信息缓存系统的场景中,若大量热点居民信息同时过期,或者Redis节点宕机,会导致大量请求直接打到后端数据库,引发“缓存雪崩”。以下防范措施无效的是()。A.设置缓存过期时间时,在基础时间上加上随机数,避免同时失效B.对热点数据设置为永不过期,通过后台异步线程更新缓存C.提高后端数据库的最大连接数上限D.在缓存未命中时,使用互斥锁控制只有一个请求查询数据库并回填缓存15.在评估居民信息数据库系统的可用性时,常常用“9”的数量来衡量。若某系统宣称达到“五个九”的可用性,则其每年的最大允许停机时间约为()。A.53分钟B.5.3分钟C.52.6分钟D.8.8小时16.居民信息数据库中包含个人的健康状况、收入等高度敏感信息。根据相关数据安全法规,这些数据在测试环境使用前必须进行脱敏处理。以下脱敏方法中,能保持数据统计特征且不可逆的是()。A.随机替换B.差分隐私C.掩码遮蔽D.数据截断17.在数据库的锁机制中,若事务T1持有行R1的共享锁,事务T2请求行R1的排他锁,事务T3请求行R1的共享锁。此时系统会发生的现象是()。A.T2和T3均等待T1释放锁B.T3成功获取锁,T2等待T1和T3释放锁C.T2成功获取锁,T3等待T2释放锁D.T2和T3均成功获取锁18.在建立联合索引`idx_name_age_phone(name,age,phone)`时,遵循最左前缀匹配原则。以下查询能利用到该联合索引的是()。A.`SELECT*FROMresidentWHEREage=25ANDphone='138...'`B.`SELECT*FROMresidentWHEREname='张三'ANDphone='138...'`C.`SELECT*FROMresidentWHEREname='张三'ANDage=25`D.`SELECT*FROMresidentWHEREage>25ANDname='李四'`19.某市居民信息库采用主从延迟监控。若发现从库的Seconds_Behind_Master持续增大,且从库IO线程状态为`yes`,SQL线程状态为`no`。最可能的原因是()。A.从库与主库之间的网络中断B.从库存在大事务或者存在执行效率低下的SQL导致回放阻塞C.主库未开启Binlog日志D.从库的内存不足导致无法接收日志20.在数据库的ACID特性中,隔离性是指多个事务并发执行时,一个事务的执行不应影响其他事务的执行。以下哪个不是数据库系统定义的标准隔离级别?()A.读未提交B.读已提交C.可重复读D.串行化读二、多项选择题(本大题共10小题,每小题2分,共20分。在每小题给出的五个选项中,至少有两个是符合题目要求的,错选、多选、少选或不选均不得分)21.居民信息数据库的安全防护需要多层次进行。在应用层防范SQL注入攻击的有效措施包括()。A.使用预编译语句B.对用户输入进行严格的格式校验C.使用存储过程执行查询D.数据库管理员定期修改密码E.遵循最小权限原则分配数据库账号权限22.在高并发查询场景下,数据库系统可能会遇到死锁问题。关于死锁产生的必要条件,下列描述正确的有()。A.互斥条件:一个资源每次只能被一个事务使用B.请求与保持条件:一个事务因请求资源而阻塞时,对已获得的资源保持不放C.不剥夺条件:事务已获得的资源,在未使用完之前,不能强行剥夺D.循环等待条件:若干事务之间形成一种头尾相接的循环等待资源关系E.资源有序分配条件:资源必须按照特定顺序分配23.某市居民信息管理系统计划从单机MySQL迁移至分布式数据库(如TiDB或OceanBase),此次架构升级可能带来的优势有()。A.突破单机存储容量瓶颈,支持水平扩展B.自动实现高可用,减少主从切换的人工干预C.完全兼容MySQL所有语法,无需修改任何业务代码D.提升海量数据复杂分析查询的并发处理能力E.简化分布式事务的使用,对业务层透明24.在数据库性能调优过程中,Explain执行计划是关键工具。在MySQL的Explain输出中,`type`列表示关联类型或访问类型。以下`type`的值中,表示性能较差、可能扫描大量数据的选项有()。A.`system`B.`const`C.`eq_ref`D.`index`E.`ALL`25.居民信息数据仓库建设过程中,ETL(抽取、转换、加载)是核心环节。在ETL的转换阶段,常见的操作包括()。A.数据清洗:去除重复记录、处理缺失值B.数据格式转换:如日期格式统一为`YYYY-MM-DD`C.数据加密:对敏感字段进行哈希或脱敏D.数据关联:将多个数据源通过身份证号进行关联E.建立物化视图以加速查询26.关于数据库日志的作用,下列说法正确的有()。A.重做日志用于保证事务的持久性,在系统崩溃后恢复已提交的数据B.回滚日志用于保证事务的原子性,支持事务的回滚操作C.二进制日志用于主从复制和数据基于时间点的恢复D.慢查询日志用于记录执行时间超过设定阈值的SQL语句,辅助优化E.错误日志仅记录数据库启动信息,不记录运行时的错误27.在关系型数据库中,范式的规范化是为了减少数据冗余和异常。关于数据库三大范式,下列描述正确的有()。A.第一范式要求每一列都是不可分割的原子数据项B.第二范式要求非主键列完全依赖于主键,不能部分依赖C.第三范式要求非主键列直接依赖于主键,不能存在传递依赖D.在实际居民信息表设计中,为了提高查询性能,有时会适当增加冗余字段违反第三范式E.满足第三范式必然自动满足第一范式和第二范式28.分布式系统中的BASE理论是大规模互联网系统的实践总结,下列属于BASE理论内涵的有()。A.基本可用B.软状态C.最终一致性D.强一致性E.原子性29.居民信息数据库采用“读写分离”架构时,为保证数据一致性,可以采取的策略有()。A.强制读主库:对于写后立即读的场景,直接读取主库数据B.半同步复制:主库写入后需等待至少一个从库确认收到日志才返回成功C.异步复制:主库写入立即返回,不等待从库,适用于对一致性要求不高的场景D.缓存标记:写库后将缓存标记设置为脏,下次读取时强制读主库并更新缓存E.分布式事务:使用两阶段提交保证主从读写的一致性30.在数据备份策略中,“3-2-1备份原则”被广泛应用于灾备体系建设。该原则的具体含义包括()。A.保留至少3份数据副本B.使用至少2种不同的存储介质C.至少有1份备份存放在异地D.每天进行3次全量备份E.保留2个在线备份和1个离线备份三、填空题(本大题共10小题,每小题1分,共10分)31.在InnoDB存储引擎中,有一种特殊的索引,它决定了数据行在物理磁盘上的存储顺序,这种索引被称为________索引。32.在数据库的事务隔离级别中,________隔离级别可以防止脏读和不可重复读,但在某些数据库(如MySQLInnoDB)中通过MVCC和锁机制进一步防止了幻读。33.在居民信息查询中,如果查询条件为`WHEREnameLIKE'%三'`,普通B+树索引将失效。如果业务上必须支持这种后缀模糊查询,可以通过将字符串反转建立________或者使用全文索引来解决。34.分布式系统中,衡量可用性的两个核心指标是RPO(恢复点目标)和RTO(恢复时间目标)。其中________表示系统在灾难发生后允许丢失的数据量。35.在MySQL的主从复制中,基于语句的复制(StatementBasedReplication,SBR)在某些场景下可能导致数据不一致,例如使用了`NOW()`或`RAND()`等函数。为了解决这个问题,可以采用________模式,它记录的是数据行更改的实际情况。36.在现代数据架构中,HTAP(混合事务/分析处理)数据库旨在一个数据库系统中同时满足OLTP和OLAP的需求。其中OLTP的中文全称是________。37.在SQL优化中,为了避免`LIMIToffset,count`语句在偏移量极大时(如`LIMIT1000000,10`)扫描大量无用数据,通常采用________的方式进行优化,即通过游标或主键范围定位起始点。38.在操作系统的文件系统层面,MySQL的数据通常存储在文件中。为了减少磁盘I/O,InnoDB会将数据划分为若干个连续的页,其默认的页大小为________KB。39.居民信息系统的数据库密码应采取安全存储策略,系统不能明文存储密码,而应使用带有随机盐值的________算法进行加密存储。40.在分布式事务的解决方案中,为了在保证最终一致性的同时不长时间锁定资源,常常采用TCC模式。TCC是Try、________和Cancel的缩写。四、判断题(本大题共10小题,每小题1分,共10分。正确的打“√”,错误的打“×”)41.在MySQL中,如果对一个字段建立了唯一索引,那么插入重复值时会报错,但唯一索引本身并不阻止该字段为NULL,且可以插入多个NULL值。()42.数据库的视图是一种虚拟表,其本身不存储数据,数据仍然存储在底层的基表中。建立视图可以提高查询数据的物理读取速度。()43.在关系型数据库中,外键约束不仅可以约束数据的参照完整性,还可以级联更新或删除关联表的数据,因此为了提高性能和灵活性,互联网高并发系统通常推荐大量使用外键约束。()44.事务的ACID特性中,持久性是指一旦事务提交,它对数据库的修改就是永久性的,即使系统崩溃也不会丢失。这主要依赖于重做日志实现。()45.增量备份是指仅备份自上一次全量备份或增量备份以来发生变化的数据。因此,恢复增量备份比恢复全量备份需要的时间更短。()46.在MySQL的InnoDB引擎中,索引采用B+树结构。B+树的所有数据都存储在叶子节点中,非叶子节点仅存储索引键和指针,这显著增加了树的层级,降低了查询效率。()47.数据库的连接池技术主要用于复用数据库连接,避免频繁创建和销毁连接带来的网络和CPU开销,从而提高系统并发能力。()48.在SQL语句中,`COUNT(*)`和`COUNT(列名)`在执行效果和性能上是完全等价的,都会统计包含NULL值的所有行数。()49.在分布式数据库的分库分表设计中,如果查询条件中不包含分片键(ShardingKey),数据库将无法精确路由到具体的数据节点,必须进行全分片扫描,这被称为“笛卡尔积路由”。()50.数据湖是一种存储企业各种格式原始数据的大型存储库。与数据仓库相比,数据湖通常强调数据的强一致性和模式在写入时定义。()五、简答题(本大题共5小题,每小题6分,共30分)51.简述数据库事务的ACID特性及其在居民信息维护中的意义。52.在MySQL中,什么是回表查询?如何通过索引优化避免回表查询?请结合居民信息表举例说明。53.简述数据库中的乐观锁和悲观锁的概念及其适用场景。在居民信息高并发修改场景中,应如何选择?54.居民信息数据库在长期运行后容易出现性能瓶颈,请列举至少四种常见的数据库性能优化手段,并简述其原理。55.什么是MVCC(多版本并发控制)?简述其在InnoDB引擎中如何通过UndoLog和ReadView解决不可重复读问题。六、综合应用与分析题(本大题共2小题,第56题15分,第57题15分,共30分。要求写出详细的计算过程、分析步骤及SQL语句)56.【存储容量与索引开销计算】某市居民信息管理系统计划建立全市的居民信息库。已知该市常住人口约为1500万人。系统设计了一张核心表`resident_info`,其表结构包含以下字段:`id`(BIGINT):主键,占用8字节。`id_card`(CHAR(18)):身份证号,占用18字节。`name`(VARCHAR(50)):姓名,平均占用10字节(假设字符集为utf8mb4,按实际字符数计算)。`gender`(TINYINT):性别,占用1字节。`birthday`(DATE):出生日期,占用3字节。`phone`(VARCHAR(20)):手机号,平均占用11字节。`address`(VARCHAR(200)):居住地址,平均占用40字节。`update_time`(DATETIME):更新时间,占用8字节。为了提升查询效率,数据库管理员在`id_card`字段上建立了一个普通的非聚簇二级索引(采用B+树结构)。已知InnoDB存储引擎的页大小为16KB(即16384字节),B+树索引的非叶子节点存储键值和指向子节点的指针(假设指针大小为6字节)。请根据以上信息,回答以下问题(保留两位小数):(1)计算该`resident_info`表中一条记录的数据行实际占用空间约为多少字节?(仅考虑上述字段数据本身,不考虑InnoDB内部的行头等额外开销)(2)计算这1500万条记录的底层数据文件(聚簇索引的叶子节点数据)大约占用多少GB的存储空间?(3)针对`id_card`字段建立的二级索引,其B+树的叶子节点存储了索引键值和主键ID。请计算该二级索引的B+树结构中,高度为3层时(即根节点、中间节点、叶子节点各一层),根节点最多可以有多少个键值?整棵3层B+树最多能索引多少行记录?57.【SQL性能分析与架构设计】某省级居民信息平台在近期进行人口普查数据比对时,出现了严重的系统卡顿和数据库连接池耗尽现象。业务场景如下:系统需要根据前端传入的居民姓名或身份证号,关联查询居民的参保信息、婚姻信息和学历信息。相关表结构及SQL如下:表:`t_resident`(id,name,id_card,region_code,create_time)--居民基础表,数据量5000万`t_insurance`(id,resident_id,insurance_type,status)--参保信息表,数据量4000万`t_marriage`(id,resident_id,marriage_status)--婚姻信息表,数据量3000万SQL语句:```sqlSELECT,r.id_card,i.insurance_type,i.status,m.marriage_statusFROMt_residentrLEFTJOINt_insuranceiONr.id=i.resident_idLEFTJOINt_marriagemONr.id=m.resident_idWHERELIKE'%张%'ANDr.region_code='510100'ORDERBYr.create_timeDESCLIMIT100000,20;```执行计划分析发现:`t_resident`表进行了全表扫描,且在关联`t_insurance`和`t_marriage`时使用了嵌套循环连接。排序操作使用了临时表和文件排序。请回答以下问题:(1)分析该SQL语句在执行过程中导致系统卡顿的三个主要性能瓶颈点。(2)针对上述瓶颈,给出针对该SQL本身的优化方案(包括索引建立和SQL重写),并说明理由。(3)针对大表关联查询,除SQL优化外,在系统架构层面还可以采取哪些措施来提升此类报表/比对类业务的整体性能和稳定性?(列举至少三点)参考答案及解析一、单项选择题1.【答案】C【解析】透明数据加密(TDE)主要防止磁盘文件被盗取后的数据泄露,但数据库管理员查询时看到的是明文;哈希散列存储不可逆,无法用于需要查询比对身份证号的场景;动态数据脱敏允许管理员查询,但返回的是打码后的数据(如`110***1234`),最适合防止内部人员泄露;对称加密虽然能防止明文查看,但密钥管理复杂且查询需解密,不如脱敏直接。2.【答案】A【解析】在InnoDB的可重复读隔离级别下,为了防止幻读,InnoDB在范围查询时不仅会对满足条件的行加行锁,还会对行之间的间隙加锁,即临键锁和间隙锁的组合。3.【答案】B【解析】异步复制下,主库提交事务不等待从库接收日志。若主库宕机且从库未完全接收最新日志,强行提升从库为主库,会导致主库已经提交但在从库未接收的那部分事务永久丢失。4.【答案】B【解析】CAP定理指出,在分布式系统中,一致性(C)、可用性(A)和分区容错性(P)三者不可兼得。当发生网络分区(P)时,如果选择保证可用性(A),则必须放弃强一致性(C)。5.【答案】D【解析】建立分区表后,并非所有查询都能自动跨分区并行查询。如果查询条件中不包含分区键,数据库仍然需要扫描所有分区,这被称为“分区裁剪失效”。只有包含分区键的查询才能触发分区裁剪,减少扫描范围。6.【答案】A【解析】增量备份记录的是自上次备份(全量或增量)以来变化的数据。因此恢复时,必须先恢复最近的全量备份,然后再按照时间顺序依次恢复增量备份。周日的全量->周一增量->周二增量。7.【答案】B【解析】缓冲池命中率低说明频繁发生从磁盘读取数据页到内存的操作。这通常是因为内存缓冲池不足,无法缓存热点数据,或者存在大量全表扫描的慢查询冲刷了缓存页。合理的做法是扩大内存或优化慢查询。8.【答案】B【解析】身份证号需要频繁用于等值查询和关联比对,不能使用不可逆哈希破坏查询能力(或者需要哈希列+明文列),通常应建立唯一非聚簇索引。为了安全,可以使用动态数据脱敏或应用层加密存储,但B选项相较于A(明文聚簇索引)更安全合理。9.【答案】B【解析】该查询是关联查询,驱动表为`street`,被驱动表为`resident`。为了加速关联和条件过滤,应在驱动表的过滤条件``上建立索引,在被驱动表的关联条件`resident.street_id`上建立索引。10.【答案】C【解析】DELETE和TRUNCATE只是逻辑层面的删除,数据文件中的数据块可能未被物理覆盖,存在恢复风险。将文件移至回收站更不可逆。使用专门的覆写算法对存储介质进行多次物理覆写是数据销毁最彻底的方法。11.【答案】D【解析】隔离级别主要影响事务的并发可见性,不会直接影响优化器对是否使用索引的选择。A、B选项会导致索引失效,C选项中优化器基于成本评估选择全表扫描是正常的执行计划选择。12.【答案】C【解析】PostgreSQL的MVCC实现是基于多版本机制的。更新和删除不会立即修改或物理删除原数据行,而是通过标记事务ID来产生新版本。旧版本数据需要通过VACUUM过程进行垃圾回收,否则会导致表膨胀。13.【答案】B【解析】一致性哈希算法在增加节点时,只需迁移哈希环上相邻节点的一部分数据,影响范围小。配合双写机制,可以在不影响业务运行的情况下实现平滑扩容。停机维护成本太高,C和D均不切实际。14.【答案】C【解析】提高后端数据库的连接数上限只是治标不治本,甚至可能导致数据库因连接过多而宕机,无法从根本上防范缓存雪崩。A、B、D都是缓解或避免雪崩的有效手段。15.【答案】C【解析】五个九(99.999%)的可用性意味着一年内的停机时间不超过365×16.【答案】B【解析】差分隐私通过在数据中添加特定分布的噪声,既能保证个体的隐私不可逆推断,又能保持数据的整体统计特征。掩码遮蔽和随机替换会影响统计特征,数据截断导致信息丢失。17.【答案】A【解析】共享锁与共享锁兼容,但共享锁与排他锁互斥。T1持有S锁,T3请求S锁,由于S-S兼容,T3可以获取;但如果T2先请求X锁被阻塞,系统为了防止饿死,T2的X锁请求会阻塞后续的S锁请求。但标准流程下,若T2先排入队列,T1和T3均需等待。根据多数锁管理器实现,T2和T3在T1释放前均需等待。18.【答案】C【解析】最左前缀匹配原则要求查询条件必须从联合索引的最左侧列开始。只有C选项包含了`name`,可以使用索引。B选项缺少`age`,虽然能用上`name`部分的索引,但在`phone`上无法利用索引跳跃。A、D均未以`name`开头,无法使用该联合索引(MySQL8.0以前不支持跳跃索引扫描)。19.【答案】B【解析】`Seconds_Behind_Master`增大,说明从库在回放日志时速度跟不上主库产生日志的速度。IO线程为`yes`说明日志接收正常,SQL线程为`no`说明回放中断或极慢,最可能是存在大事务或无主键导致的全表扫描回放。20.【答案】D【解析】SQL标准定义的四种隔离级别是:读未提交、读已提交、可重复读和串行化。“串行化读”并非标准名称。二、多项选择题21.【答案】A,B,C,E【解析】预编译语句、严格校验、存储过程以及最小权限原则都能有效防范或限制SQL注入的危害。数据库管理员修改密码属于身份认证范畴,不能防止SQL注入。22.【答案】A,B,C,D【解析】死锁的四个必要条件是互斥、请求与保持、不剥夺和循环等待。资源有序分配是预防死锁的策略,而非产生死锁的条件。23.【答案】A,B,D【解析】分布式数据库突破了单机容量限制(A),通常具备自动高可用切换能力(B),适合海量数据分析(D)。C错误,并非所有MySQL语法都完全兼容;E错误,分布式事务通常需要应用层介入或使用特定的框架,并非完全透明。24.【答案】D,E【解析】`index`表示扫描整个索引树,`ALL`表示全表扫描,这两者性能较差。`system`和`const`是最优的,`eq_ref`也是性能极高的关联查询。25.【答案】A,B,C,D【解析】ETL的转换阶段负责数据清洗、格式转换、加密和关联等操作。建立物化视图属于数据仓库构建阶段的加载或后续优化,不属于ETL的转换环节。26.【答案】A,B,C,D【解析】重做日志保证持久性,回滚日志保证原子性,二进制日志用于复制和时间点恢复,慢查询日志用于性能调优。错误日志不仅记录启动信息,也记录运行时严重错误。27.【答案】A,B,C,D,E【解析】A、B、C分别描述了三大范式的核心要求;D描述了反范式设计,在实际应用中为了性能常违反第三范式;E正确,满足第三范式必然满足前两范式。28.【答案】A,B,C【解析】BASE理论包括基本可用、软状态和最终一致性。强一致性(C)和原子性(A)属于ACID理论。29.【答案】A,B,C,D【解析】读写分离中,强一致读主、半同步复制、异步复制和缓存标记都是常用的数据一致性策略。使用两阶段提交(2PC)跨主从库是不现实且性能极差的,不适用于读写分离场景。30.【答案】A,B,C【解析】3-2-1备份原则指:保留3份数据副本,存储在2种不同的介质上,其中1份存放在异地。不涉及每天3次备份或在线/离线数量分配。三、填空题31.【答案】聚簇32.【答案】可重复读33.【答案】反向索引34.【答案】RPO35.【答案】基于行的复制36.【答案】联机事务处理37.【答案】游标分页或延迟关联或基于主键定位38.【答案】1639.【答案】Bcrypt或PBKDF2或Argon240.【答案】Confirm四、判断题41.【答案】√【解析】在InnoDB中,唯一索引仅限制非NULL值的唯一性。由于NULL在SQL中代表未知,不等于任何值(包括另一个NULL),因此唯一索引列允许插入多个NULL值。42.【答案】×【解析】视图本身不存储数据,它只是一张逻辑表。建立视图可以简化代码编写,但不能直接提高数据的物理读取速度(除非是物化视图)。43.【答案】×【解析】外键约束虽然能保证参照完整性,但在高并发写入时会引入额外的锁开销和级联锁风险,降低性能。互联网高并发系统通常在应用层实现数据一致性约束,避免使用物理外键。44.【答案】√【解析】持久性通过重做日志实现,事务提交时先写重做日志,系统崩溃后可通过重做日志恢复已提交但未落盘的数据。45.【答案】×【解析】增量备份虽然备份时间短,但恢复时需要先恢复全量备份,再依次恢复多个增量备份,恢复时间通常比直接恢复全量备份更长。46.【答案】×【解析】B+树非叶子节点不存储数据,使得每个节点能容纳更多的键值,从而增加了树的扇出,降低了树的高度,提升了查询效率。47.【答案】√【解析】连接池复用TCP连接和数据库会话,避免了频繁建立和销毁连接的资源开销,是提高并发能力的有效手段。48.【答案】×【解析】`COUNT()`统计所有行数(包含NULL),而`COUNT(列名)`仅统计该列不为NULL的行数,且执行计划上`COUNT()`通常有专门优化,二者不等价。49.【答案】×【解析】如果查询条件不包含分片键,无法进行精确路由,数据库会将查询广播到所有分片进行执行,这被称为“全路由”或“广播查询”,而非“笛卡尔积路由”。50.【答案】×【解析】数据湖强调存储原始数据、各种格式数据,支持模式在读时定义;而数据仓库强调强一致性和模式在写入时定义。五、简答题51.【答案】ACID特性指:(1)原子性:事务中的操作要么全部成功,要么全部失败回滚。在居民信息维护中,如新增人口时同时更新户口簿和人口统计表,必须保证两个表同时更新成功,否则数据不一致。(2)一致性:事务执行前后,数据库从一个一致状态变为另一个一致状态。如居民迁出后,原户籍地人口数减1,新户籍地人口数加1,总人数保持不变。(3)隔离性:并发执行的事务互不干扰。多窗口同时修改同一居民信息时,不应读取到对方未提交的中间状态。(4)持久性:事务一旦提交,对数据的修改是永久的。即使服务器断电,已登记的居民信息也不能丢失。52.【答案】(1)回表查询:当使用非聚簇二级索引查询时,二级索引的叶子节点存储的是主键值。数据库先在二级索引树上查找到主键值,然后再根据主键值去聚簇索引树上查找完整数据行记录的过程称为回表。(2)避免方法:使用覆盖索引。即将查询需要的所有字段都包含在索引中,这样在二级索引树上就能获取所有数据,无需回表。(3)举例:居民表`resident(id,id_card,name,age,address)`。若执行`SELECTid_card,nameFROMresidentWHEREage=25`,如果在`age`字段建立普通索引,会先查`age`索引得到主键`id`,再回表查`name`。如果建立联合索引`idx_age_name(age,name)`,则二级索引的叶子节点包含了`age`和`name`,甚至包含主键`id`,可以直接返回结果,避免回表。53.【答案】(1)概念:悲观锁:认为数据随时会被修改,因此在整个数据处理过程中将数据加锁。依赖数据库的锁机制(如`SELECT...FORUPDATE`)。乐观锁:认为冲突概率低,不在数据库层面加锁,而是在更新时通过版本号或时间戳机制检查数据是否被修改过。(2)适用场景:悲观锁适用于写多读少、冲突概率高的场景。乐观锁适用于读多写少、冲突概率低的场景。(3)选择:在居民信息高并发修改场景中,如果是热点居民数据(如明星户口信息被频繁修改),冲突率高,应选择悲观锁保证强一致性;如果是普通居民信息偶尔修改,冲突率低,应选择乐观锁以提高系统并发吞吐量。54.【答案】常见的优化手段:(1)索引优化:分析慢查询日志,为WHERE、JOIN、ORDERBY等高频操作字段建立合适索引,避免全表扫描。(2)SQL重写:避免SELECT*,避免在索引列上使用函数,将大事务拆分为小事务,减少锁持有时间。(3)表结构优化:对大表进行水平或垂直拆分。水平拆分按规则将数据分散到多个表,垂直拆分将不常用或大字段拆分到扩展表。(4)架构优化:引入Redis等缓存层,将热点居民信息加载到内存,减少数据库读压力;引入读写分离,将查询请求分流到从库。(5)硬件与参数优化:增加内存缓冲池,使用SSD提升磁盘I/O,调整数据库连接池和并发参数。55.【答案】(1)MVCC概念:多版本并发控制,是一种用来解决读写冲突的无锁并发控制机制。它通过保存数据的历史版本,使得读操作不需要阻塞写操作,写操作也不阻塞读操作。(2)解决不可重复读原理:在InnoDB中,每行数据都隐藏了两个列:创建时间版本号(事务ID)和删除时间版本号。UndoLog:当数据被修改时,旧版本被写入UndoLog,通过回滚指针将历史版本串联起来,形成版本链。ReadView:在可重复读隔离级别下,事务在第一次执行查询时会生成一个ReadView,它记录了当时所有活跃事务的ID列表。查询数据时,InnoDB会沿着版本链向下查找,将每个版本的事务ID与ReadView进行对比。只有当版本的事务ID小于ReadView中最小活跃事务ID(说明在当前事务开始前已提交)时,才可见。这样即使其他事务提交了修改,当前事务依然只能看到生成ReadView时的数据快照,从而解决了不可重复读问题。六、综合应用与分析题56.【参考答案】(1)数据行实际占用空间计算:各字段占用字节累加:`id`(BIGINT):8B`id_card`(CHAR(18)):18B`name`(VARCHAR(50),平均10字符):10B(注:假设为ASCII字符集,若为utf8mb4中文字符则为10*3=30B,此处按题意“平均占用10字节”理解)`gender`(TINYINT):1B`birthday`(DATE):3B`phone`(VARCHAR(20),平均11字符):11B`address`(VARCHAR(200),平均40字符):40B`update_time`(DATETIME):8B总字节=8+18+10+1+3+11+40+8=99字节。所以,一条记录的数据行实际占用空间约为99字节。(2)底层数据文件存储空间计算:总记录数N单行大小S=总原始数据量=N转换为GB:1,(注:实际InnoDB存储还包括页头、行头等开销,此处仅根据题意计算纯数据占用空间,约为1.38GB)(3)二级索引B+树结构计算:InnoDB页大小P=16KB对于`id_card`的二级索引,叶子节点存储键值(18B)和主键ID(8B),共26B。非叶子节点存储键值(18B)和指向子节点的指针(6B),共24B。根节点(第1层):一个页最多能容纳的键值数量=⌊即根节点最多有682个键值,最多有683个子节点(指针数)。整棵3层B+树的最大索引容量:第1层(根节点):最多1个页,有683个指针指向第2层。第2层(中间节点):最多683个页,每
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年鲁山县公务员招聘笔试备考题库及答案解析
- 电子产品销售分销合同三篇
- 2026年逊克县公务员招聘考试备考题库及答案解析
- 2026年太康县公务员招聘考试备考试题及答案解析
- 2026年杜尔伯特蒙古族自治县事业单位人员招聘笔试备考题库及答案解析
- 2026年蕲春县事业单位人员招聘笔试模拟试题及答案解析
- 2026年桦南县事业单位人员招聘考试参考题库及答案解析
- 2026年富蕴县公务员招聘笔试备考题库及答案解析
- 甲亢常见试题及答案解析
- 2026年下半年牡丹江市事业单位公开招聘工作人员456人考试备考试题及答案详解
- 老年护理中的医疗与养老融合实践
- 村保洁人员考核奖惩制度
- 军训教官量化考核制度
- GB/T 21458-2026流动式起重机额定起重量图表
- 交通安全教育手册(标准版)
- 2025年团委书记竞聘面试题库及答案
- 墓地恢复重建协议书
- 2025年EDI说明书文档
- 基于图论的生物信息学研究-洞察及研究
- 2025年个人租房合同范本(可下载打印版)
- 军事知识竞赛试题及答案
评论
0/150
提交评论