SQL-期末
编程
SQL 3选2,标注使用哪个数据库
- 常见函数:
- 字符串replace
- 数值计算,考虑空值,平均值空值
- 日期,使用索引的三种写法
- 递归查询,withas
- 起始体,union all,递归体,视图
- 外连接+数值计算
结构合理、关键字、函数都有分
论述
- 索引的叶节点
- 结构:N个节点,N+1个link
- 考试一般3扇出
- 节点分裂/合并
- 叶节点和内部节点
- 向上传递
- 结构:N个节点,N+1个link
- 日志
- Redo
- Undo
- 区别,实现,问题
- 分区,分表,分库
- 原因
- 解决的问题
- 带来新的问题
- SQL解释器:可能会考一个基于成本优化器的成本计算方式
- 优化的基本逻辑
- 基于成本的优化器
- 基于规则的优化器
- 建议和想法
B+Tree索引是大多DBMS缺省的索引类型,请详细描述以下几个问题:
1)B树索引的结构和使用方式
有K个子树的中间结点包含K个元素,每个节点不保存数据只保存索引,所有的数据都存储在叶节点;
所有叶节点中包含了元素的信息,还有指向元素记录的指针,并且叶节点本身按照关键字大小从小到大的顺序连接;
使用方式是根据目标元素在B树中二分查找。
2)何时该使用B树索引,并分别说明原因;并详细说明为什么系统的为外键构建索引是普遍的要求?
何时使用:
仅需要通过索引访问基本表的一部分(检索的结果集与集体的百分比低于10%)
如果处理表的多列,可以使用索引而不使用表;
为什么系统的为外键构建索引是普遍的要求:
建立外键索引可以更快速地保证数据的一致性:比如A持有B的外键,B删除记录时需要检查A中相应的行;否则,需要对A全表遍历;
建立外键索引可以避免死锁:如上所述,对A全表遍历时间很长,导致其他进程与之死锁,导致双双失败;
3)针对2)有没有例外情况?如果有请简要说明情况
如果表很小或者很少被修改,则不必建立;因为使用索引非常占用磁盘空间;
4)请描述Oracle中一种类似于B树索引结构的物理组织形式索引组织表(IOT)的基本结构和应用范围
其中的记录是排序,按主键有序的。IOT中每个叶节点既有每行的主键值,又有非主键值。
数据的存放是严格规定的, 记录的存放是排序的,查询效率非常高。数据插入以前其实就已经确定了其位置,所以不管插入的先后顺序,它在那个物理上的哪个位置与插入的先后顺序无关。这样在进行查询的时候就可以少访问很多 blocks,但是插入的时候,速度就比普通的表要慢一些。
应用范围:经常查找的表;经常通过主键访问的表;按顺序进行物理存贮;构建自己的索引结构;对主键或者唯一键区间查询、分类查询;
不适用:经常更新的表;不经常使用主键访问的表;
- 标题: SQL-期末
- 作者: Charlie
- 创建于 : 2024-06-03 14:06:00
- 更新于 : 2024-07-05 12:55:04
- 链接: https://chillcharlie357.github.io/posts/48f5fee/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。