数据库原理的概述
2023-12-17 07:48:13
连接
实现方式:
- 嵌套连接,将小的表放在外面的for。
- 哈希连接,将两个表连接映射到一个共同的哈希表中。(两个小表的连接)
- 排序之后的合并连接
优化
投影下移
选择下移
聚集索引
当在表上建立了聚集索引,这个索引决定了表中数据的物理排序顺序,叶子节点就是数据行本身。数据行的顺序和聚集索引的顺序一致,一张表只有一个聚集索引。
非聚集索引的叶子节点包含索引列的值,和一个指向实际数据行的指针。
如果使用非聚集索引查找:
- 如果存在非聚集索引,使用索引。
- 不存在则遍历查找。
事务
事务是数据库操作的基本单位。
事务在未提交前是不会写入磁盘的,只放在内存中。
恢复技术
核心是建立冗余数据,并且使用冗余数据实现数据库恢复。
数据转储
- 静态转储:停止所有事务,然后进行转储。
- 动态转储:数据存取时候进行转储。
还分为海量转储和增量转储。
日志文件
日志文件是记录事务对数据库更新操作的文件。
记录事务为单位的日志文件。
日志文件的作用:
- 事务故障恢复,系统故障恢复
- 在动态转储过程中记录操作。
必须先写日志文件,再写数据库。
事务故障的恢复
通过反向扫描日志文件,找到该事务的操作,undo操作逆向执行操作,直到将该事务的操作执行完毕。
系统故障恢复
系统故障恢复是在系统重启后自动执行的,用户只需要重启设备就行了。
系统故障导致的两种错误:
- 未commit的数据已经写入磁盘。
- 已经commit的数据没有写入磁盘。
解决方式: - 扫描日志文件,找出没有commit的事务添加到撤销队列(UNDO),已经commit的事务添加到重做队列(REDO)。
- 执行UNDO和REDO。
文章来源:https://blog.csdn.net/qq_35693377/article/details/135032628
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!