课程介绍
抖码课堂数据库系统系列课视频教程,由整理发布最新高清完结版。学习数据库对于计算机科学专业学生和从事软件开发的人员来说非常重要,因为它是应用系统中存储和管理数据的重要工具,能够快速、准确地应对海量数据的存取需求,提供高性能的数据管理功能,同时也支持数据安全、备份等关键功能,广泛应用于各个领域,对于企业和组织的运营安全至关重要。本课带你深入讲解 MySQL、Redis、Zookeeper、Oracle 等数据库。
相关推荐
抖码课堂 – [课程 A]30天算法面试训练营
抖码课堂 – [课程 A]精讲数据结构与算法
抖码课堂 – [课程 B]计组 + 操作系统+网络系统
资源目录
71_SQL基础一:认识SQL/
[ 40M] 1-1_1_认识SQL课程内容
[ 54M] 1-2_2_SQL是什么以及为什么需要SQL?
[ 58M] 1-3_3_什么是数据库管理系统?
[ 83M] 1-4_4_Windows环境下安装MySQL
[ 81M] 1-5_5_Linux环境下安装MySQL
[108M] 1-6_6_MySQL中的数据库和表
[ 68M] 1-7_7_常用的数据类型
[114M] 1-8_8_完整性约束
[103M] 1-9_9_外键约束
[ 80M] 1-10_10_SQL语句的分类
[176M] 1-11_11_DCL-数据库访问权限控制
[103M] 1-12_12_一条SQL的执行过程
72_SQL基础二:简单查询/
[ 63M] 1-1_1_简单查询课程内容以及准备数据表
[ 81M] 1-2_2_SELECT子句和FROM子句
[ 90M] 1-3_3_限定查询:WHERE子句(一)
[114M] 1-4_4_限定查询:WHERE子句(二)
[ 52M] 1-5_5_排序查询:ORDERBY子句
[ 31M] 1-6_6_什么是单行函数
[ 40M] 1-7_7_单行函数:字符串函数(一)
[ 63M] 1-8_8_单行函数:字符串函数(二)
[ 49M] 1-9_9_单行函数:字符串函数(三)
[ 29M] 1-10_10_单行函数:数值函数
[117M] 1-11_11_单行函数:日期时间函数
[ 79M] 1-12_12_单行函数:转换函数
[ 71M] 1-13_13_单行函数:通用函数
73_SQL基础三:复杂查询/
[5.9M] 1-1_0_复杂查询课程内容
[120M] 1-2_1_消除笛卡尔积
[156M] 1-3_2_表的连接查询:内连接、外连接和自身连接
[115M] 1-4_3_连接查询综合练习
[ 51M] 1-5_4_聚合函数
[ 61M] 1-6_5_分组聚合:GROUPBY子句(一)
[ 89M] 1-7_6_分组聚合:GROUPBY子句(二)
[ 83M] 1-8_7_分组聚合:HAVING子句
[123M] 1-9_8_WHERE子句中的子查询
[ 76M] 1-10_9_HAVING子句和FROM子句中的子查询
[ 88M] 1-11_10_综合查询
[ 54M] 1-12_11_DDL部分知识点补充
[ 87M] 1-13_12_DML部分知识点补充
[ 43M] 1-14_13_视图
[ 39M] 1-15_14_存储过程
[105M] 1-16_15_分页查询:LIMIT关键字
[ 33M] 1-17_16_临时表
74_MySQL一:存储引擎/
[ 49M] 1-1_1_存储引擎课程内容
[ 14M] 1-2_2_B-Tree课程内容
[ 63M] 1-3_3_什么是B-Tree?
[ 48M] 1-4_4_B-Tree本质上是多路查找树
[ 32M] 1-5_5_为什么关系型数据库使用B-Tree组织数据?
[ 65M] 1-6_6_B+Tree
[ 43M] 1-7_7_B+Tree新增一条记录
[ 24M] 1-8_8_B+Tree删除一条记录
[ 79M] 1-9_9_InnoDB存储引擎介绍
[111M] 1-10_10_InnoDB磁盘结构:表空间
[128M] 1-11_11_InnoDB磁盘结构:页(Page)
[104M] 1-12_12_一个页的页内结构
[132M] 1-13_13_行格式(row_format)
[131M] 1-14_14_如何高效的在一个页中查找一条记录
[ 44M] 1-15_15_[总结]InnoDB是如何根据主键查询一条记录
[ 87M] 1-16_16_InnoDB磁盘结构:区和段
[ 58M] 1-17_17_InnoDB内存结构之BufferPool
[ 37M] 1-18_18_BufferPool如何管理缓存页
[ 76M] 1-19_19_BufferPool使用LRU算法提高缓存命中率
[ 66M] 1-20_20_BufferPool污染问题
[8.8M] 1-21_21_脏页什么时候会被刷入磁盘
[137M] 1-22_22_其他两种存储引擎:MyISAM和Memory
75_MySQL二:索引(Index)/
[ 16M] 1-1_1_索引(Index)课程内容
[ 49M] 1-2_2_准备表数据(使用SOURCE执行sql文件)
[126M] 1-3_3_主键索引(聚集索引vs非聚集索引)
[ 43M] 1-4_4_EXPLAIN查看选择的索引
[ 41M] 1-5_5_辅助索引(SecondaryIndex)-二级索引加速查询性能
[ 70M] 1-6_6_InnoDB的辅助索引的B树
[ 70M] 1-7_7_InnoDB基于辅助索引查询的步骤
[ 96M] 1-8_8_优化:索引条件下推(IndexConditionPushdown)
[ 71M] 1-9_9_有时使用索引查询反而慢
[ 50M] 1-10_10_唯一索引
[104M] 1-11_11_EXPLAIN中的type字段的含义
[ 89M] 1-12_12_联合索引
[ 75M] 1-13_13_索引的选择性、索引顺序以及索引失效
[ 37M] 1-14_14_覆盖索引
[ 99M] 1-15_15_给字符串加索引-前缀索引
[ 68M] 1-16_16_自增主键vsUUID主键(页分裂)
[123M] 1-17_17_MyISAM存储引擎中的索引
76_MySQL三:事务(undolog)/
[ 46M] 1-1_1_什么是数据库事务?
[ 33M] 1-2_2_两种开启事务的方法:BEGIN和[email protected]
[ 74M] 1-3_3_事务的自动提交和隐式提交
[ 54M] 1-4_5_事务的四大特性:ACID
[ 86M] 1-5_6_什么是undolog?
[103M] 1-6_7_各种undolog的格式
[ 36M] 1-7_8_存放undolog的undo页
[ 60M] 1-8_10_回滚段(RollbackSegment)
77_MySQL四:崩溃恢复/
[ 66M] 1-1_1_什么是redolog以及为什么需要redolog?
[ 31M] 1-2_2_WAL(WriteAheadLogging)技术
[ 81M] 1-3_3_redolog的格式
[ 80M] 1-4_4_底层页面的原子访问(Mini-Transaction)
[ 67M] 1-5_6_redolog最终写到哪一个磁盘文件呢?
[ 97M] 1-6_7_checkpoint-redolog的循环写
[ 52M] 1-7_8_redolog加undolog一起实现Crash-safe
[ 27M] 1-8_9_如何查看binlog内容?
[ 69M] 1-9_11_binlog的作用一:数据恢复
[ 79M] 1-10_12_使用binlog进行增量备份
[ 33M] 1-11_13_binlog的作用二:数据复制
[ 72M] 1-12_14_MySQL主从复制的配置和实践
[ 40M] 1-13_15_statement和row格式的binlog各自优缺点
[ 37M] 1-14_16_binlog的刷盘过程
[ 57M] 1-15_18_两阶段提交保证数据一致
[ 40M] 1-16_19_提升redolog和binlog刷盘的性能
[1.4M] 1-17_20_binlog和redolog常见问题总结
78_MySQL五:并发控制/
[ 18M] 1-1_1_并发控制课程内容
[ 62M] 1-2_2_脏读、不可重复读以及幻读
[ 62M] 1-3_3_事务的隔离级别:读未提交和读已提交
[ 66M] 1-4_5_共享锁和独占锁
[ 62M] 1-5_6_全局锁、表级锁和行级锁
[ 78M] 1-6_7_表级锁:意向锁和元数据锁
[ 69M] 1-7_8_InnoDB行级锁
[ 78M] 1-8_9_如何通过加锁实现串行化隔离级别?
[ 70M] 1-9_10_Next-KeyLock
[ 90M] 1-10_11_间隙锁(GapLock)
[ 61M] 1-11_12_幻读问题是如何彻底解决的
[ 63M] 1-12_14_版本链
[100M] 1-13_15_ReadView:一致性视图
[139M] 1-14_17_一致性读vs当前读
[ 48M] 1-15_18_MVCC总结
79_Redis一:快速入门/
[ 19M] 1-1_1_Redis入门课程内容
[105M] 1-2_2_Redis服务端的安装
[ 98M] 1-3_3_Redis客户端的使用
[ 55M] 1-4_4_字符串类型:SET命令
[ 65M] 1-5_5_键值对过期时间(TTL)
[ 53M] 1-6_6_字符串类型:常用命令
[ 44M] 1-7_7_列表类型:新增操作
[ 67M] 1-8_8_列表类型:删除操作
[ 59M] 1-9_9_列表类型:修改和查询操作
[ 80M] 1-10_10_集合类型:增删改查操作
[ 60M] 1-11_11_哈希类型:新增操作
[ 35M] 1-12_12_哈希类型:删改查操作
[ 74M] 1-13_13_有序集合类型:新增和查询操作
[ 26M] 1-14_14_有序集合类型:删除操作
[ 56M] 1-15_15_有序集合类型:多个集合的差集、交集和并集
[ 33M] 1-16_16_Redis中的键值对是如何存储的?
[ 57M] 1-17_17_Redis通用的命令
80_Redis二:缓存功能/
[ 64M] 1-1_1_缓存功能课程内容
[139M] 1-2_2_一个简单的Web应用
[ 28M] 1-3_3_debug的方式看下Web应用程序执行顺序
[161M] 1-4_4_Web应用程序如何操作Redis
[130M] 1-5_6_MySQL和Redis数据不一致问题
[ 74M] 1-6_7_解决数据不一致问题:先删除缓存(延迟双删)
[ 80M] 1-7_8_解决数据不一致问题:后删除缓存(异步删除缓存)
[ 36M] 1-8_9_MySQL和Redis数据一致性问题总结
[ 97M] 1-9_10_缓存穿透问题及其解决方案
[160M] 1-10_11_使用哈希表解决缓存穿透问题
[ 50M] 1-11_12_布隆过滤器原理
[ 89M] 1-12_13_使用guava中布隆过滤器解决缓存穿透问题
[165M] 1-13_14_基于Redis实现的布隆过滤器解决缓存穿透问题
[ 53M] 1-14_15_Redis服务端实现的BloomFilter
[ 45M] 1-15_16_缓存雪崩问题及其解决方案
[140M] 1-16_17_互斥锁解决缓存击穿问题
[ 38M] 1-17_18_将常量放在一个地方
[123M] 1-18_19_逻辑过期解决缓存击穿问题
81_Redis三:高性能之IO/
[ 27M] 1-1_1_IO相关课程内容
[ 67M] 1-2_2_基于多路复用技术的reactor网络模型
[ 69M] 1-3_3_Redis实现的reactor网络模型
[ 82M] 1-4_4_RedisServer进程的抽象
[ 68M] 1-5_6_如何理解Redis是单线程的?
[ 58M] 1-6_7_Redis持久化方式一:RDB
[ 80M] 1-7_8_手动保存RDB文件
[ 33M] 1-8_9_自动保存RDB文件
[ 56M] 1-9_10_Redis持久化方式二:AOF
[ 40M] 1-10_11_AOF三种写回策略
[ 79M] 1-11_12_AOF重写机制
[ 26M] 1-12_13_混合持久化@www.ukoou.com
[ 28M] 1-13_14_再来理解Redis的线程模型
82_Redis四:高性能之内存/
[ 22M] 1-1_1_高性能之内存课程内容
[ 46M] 1-2_2_底层数据结构:简单动态字符串(SDS)
[ 81M] 1-3_3_SDS的高效操作和节省内存
[ 72M] 1-4_4_底层数据结构:哈希表
[147M] 1-5_5_Redis哈希表渐进式rehash操作
[ 19M] 1-6_6_底层数据结构:压缩列表
[ 49M] 1-7_8_往ziplist中添加元素的逻辑
[ 43M] 1-8_9_ziplist的连锁更新问题
[ 33M] 1-9_10_压缩列表之quicklist
[ 40M] 1-10_11_压缩列表之listpack
[ 22M] 1-11_12_压缩列表总结
[ 29M] 1-12_13_底层数据结构:整数集合-IntSet
[ 81M] 1-13_14_redisObject包装常用的数据类型
[ 49M] 1-14_15_字符串对象的底层编码
[ 33M] 1-15_16_列表对象的底层编码
[ 18M] 1-16_17_哈希对象的底层编码
[ 26M] 1-17_18_集合对象的底层编码
[ 29M] 1-18_19_有序集合对象的底层编码
[ 50M] 1-19_20_Redis的过期删除策略
[ 47M] 1-20_21_Redis的内存淘汰策略
83_Redis五:高可靠/
[ 49M] 1-1_1_高可靠课程内容
[ 76M] 1-2_2_主从复制集群配置
[ 55M] 1-3_3_主从复制的四大阶段
[ 40M] 1-4_4_全量复制数据详细过程
[ 67M] 1-5_5_增量复制命令详细过程
[ 20M] 1-6_6_主从复制总结
[ 37M] 1-7_7_哨兵节点的作用和任务
[ 36M] 1-8_8_监控:主观下线和客观下线
[ 28M] 1-9_9_选主:筛选+打分
[ 83M] 1-10_10_搭建哨兵集群
[ 19M] 1-11_11_验证哨兵集群的主从切换
[ 55M] 1-12_12_哨兵与哨兵之间如何建立连接?
[ 22M] 1-13_13_哨兵和从节点如何建立连接?
[ 56M] 1-14_14_客户端和哨兵之间的连接?
[ 39M] 1-15_15_由哪个哨兵执行主从切换?
84_Redis六:高可扩展/
[ 28M] 1-1_1_高可扩展课程内容
[ 67M] 1-2_2_搭建Redis分片集群
[ 49M] 1-3_3_散列插槽
[ 54M] 1-4_4_往分片集群中添加一个节点
[ 26M] 1-5_5_主从故障转移
[ 31M] 1-6_6_客户端程序访问分片集群
85_Redis七:分布式锁/
[ 52M] 1-1_1_分布式锁课程内容
[ 41M] 1-2_2_Redis的原子操作
[ 52M] 1-3_3_认识lua脚本语言
[ 61M] 1-4_4_Redis中执行lua脚本
[ 19M] 1-5_5_lua脚本保证多个redis命令的原子性
[ 48M] 1-6_6_基于Redis实现分布式锁
[ 38M] 1-7_7_分布式锁的测试
[ 93M] 1-8_8_死锁问题和误删除锁问题的解决
[ 58M] 1-9_9_分布式锁实现时还需要考虑的问题
[ 57M] 1-10_10_如何实现分布式可重入锁
[ 35M] 1-11_11_实现分布式可重入锁的lua脚本逻辑
[ 88M] 1-12_12_Redisson实现分布式可重入锁
[ 94M] 1-13_13_Redisson实现分布式锁重试功能
[ 60M] 1-14_14_Redisson解决锁超时问题
[ 42M] 1-15_15_Redisson分布式锁实现小结
[ 65M] 1-16_16_为什么Redisson丢弃了红锁呢
86_Zookeeper:分布式协调服务/
[ 18M] 1-1_1_课程内容
[ 18M] 1-2_2_为什么需要Zoeeper
[ 51M] 1-3_3_单机安装zoeeper
[ 45M] 1-4_4_使用命令行操作zoeeper
[ 18M] 1-5_5_使用ZooInspector操作zk
[ 53M] 1-6_6_数据模型
[ 78M] 1-7_7_安装分布式zoeeper
[ 56M] 1-8_8_分布式zoeeper的特点
[ 78M] 1-9_9_Java创建zoeeper会话
[ 69M] 1-10_10_Java创建zk节点
[ 36M] 1-11_11_Java设置和删除zk节点
[ 83M] 1-12_12_ZNode的watcher机制
[ 65M] 1-13_13_ZNode的watcher机制二
[ 20M] 1-14_14_ZNode的ACL机制(了解即可)
[ 37M] 1-15_15_curator客户端操作zk(了解即可)
[ 93M] 1-16_16_配置管理(掌握原理即可)
[102M] 1-17_17_分布式锁(了解即可)
[ 39M] 1-18_18_Master选举(掌握原理即可)
87_Oracle一:简单查询/
[100M] 1-1_1_Java数据分析
[ 78M] 1-2_2_Oracle11g安装(windows)
[ 34M] 1-3_3_Oracle服务以及sqlplus介绍
[ 76M] 1-4_4_SQL数据分析
[ 30M] 1-5_5_SQL语句的分类
[ 56M] 1-6_6_PLSQLDeveloper客户端工具
[ 42M] 1-7_7_数据准备
[ 41M] 1-8_8_简单查询一@ukoou.com
[ 38M] 1-9_9_简单查询二
[ 30M] 1-10_10_简单查询三
[ 32M] 1-11_11_限定查询一
[116M] 1-12_12_限定查询二
[ 50M] 1-13_13_限定查询三
[ 46M] 1-14_14_限定查询四
[ 30M] 1-15_15_限定查询五
[ 57M] 1-16_16_排序查询
[ 43M] 1-17_17_单行函数
[ 55M] 1-18_18_字符串函数一
[ 77M] 1-19_19_字符串函数二
[ 25M] 1-20_20_字符串函数三
[ 27M] 1-21_21_数值函数
[ 75M] 1-22_22_日期函数一
[ 58M] 1-23_23_日期函数二
[ 47M] 1-24_24_转换函数
[ 52M] 1-25_25_通用函数一
[ 24M] 1-26_26_DECODE函数
[ 63M] 1-27_27_CASEWHEN语句
88_Oracle二:复杂查询/
[ 78M] 1-1_28_笛卡儿积的消除
[ 70M] 1-2_29_多表查询
[ 72M] 1-3_30_内连接
[ 39M] 1-4_31_外连接
[ 54M] 1-5_32_自身关联
[ 98M] 1-6_33_复杂查询练习
[ 32M] 1-7_34_查询SQL语法总结
[ 25M] 1-8_35_并集、交集和差集
[ 48M] 1-9_36_聚合函数
[ 62M] 1-10_37_分组聚合一
[ 87M] 1-11_38_分组聚合二
[ 22M] 1-12_39_分组聚合三
[ 58M] 1-13_40_分组聚合四
[ 21M] 1-14_41_查询SQL语法总结
[ 20M] 1-15_42_子查询的概念
[ 26M] 1-16_43_WHERE子句中的子查询一
[ 43M] 1-17_44_WHERE子句中的子查询二
[ 68M] 1-18_45_WHERE子句中的子查询三
[ 30M] 1-19_46_HAVING子句中的子查询
[ 76M] 1-20_47_FROM子句中的子查询
[ 96M] 1-21_48_综合查询
89_Oracle三:DML和DDL/
[ 55M] 1-1_49_DML之增
[ 48M] 1-2_50_DML之改
[ 31M] 1-3_51_DML之删
[ 60M] 1-4_52_提交回滚机制
[ 63M] 1-5_53_事务
[ 45M] 1-6_54_事务的四大特性
[104M] 1-7_55_数据库的隔离级别
[ 61M] 1-8_56_锁
[ 79M] 1-9_57_DDL之建表
[ 42M] 1-10_58_DDL之表的复制
[ 14M] 1-11_59_表的重命名和删除
[ 43M] 1-12_60_表结构的修改
[ 16M] 1-13_61_schema
[ 67M] 1-14_62_非空、唯一、主键约束
[ 28M] 1-15_63_检查约束
[ 50M] 1-16_64_外键约束
[ 37M] 1-17_65_外键的限制
90_Oracle四:其他数据库对象/
[ 43M] 1-1_66_序列
[ 63M] 1-2_67_ROWNUM
[ 37M] 1-3_68_ROWID
[ 53M] 1-4_69_B树索引
[ 45M] 1-5_70_位图索引
[ 29M] 1-6_71_视图
[114M] 1-7_72_练习准备数据
[ 56M] 1-8_73_SQL查询练习一
[ 45M] 1-9_74_SQL查询练习二
[ 38M] 1-10_75行转列列转行:分组聚合实现行转列
[ 44M] 1-11_76行转列列转行:PIVOT
[ 37M] 1-12_77行转列列转行:PIVOT高级
[8.3M] 1-13_78行转列列转行:填充null
[ 10M] 1-14_79行转列列转行:列转行数据准备
[ 20M] 1-15_80行转列列转行:UNION实现列转行
[ 20M] 1-16_81行转列列转行:UNPIVOT
91_Oracle五:JDBC/
[认准一手完整 www.ukoou.com]数据库系统系列课
[ 71M] 1-1_82_Java连接Oracle数据库
[ 50M] 1-2_83_Java连接数据库错误解决
[ 59M] 1-3_84_Statement插入数据
[ 37M] 1-4_85_Statement更新和删除数据
[ 69M] 1-5_86_Statement查询数据
[ 67M] 1-6_87_PreparedStatement插入数据
[ 28M] 1-7_88_PreparedStatement查询数据
[131M] 1-8_89_两种Statement对比
[ 42M] 1-9_90_批量更新
[ 43M] 1-10_91_DBUtils
[ 96M] 1-11_92_用户注册
[ 46M] 1-12_93_设置userId
[ 76M] 1-13_94_事务处理
[ 70M] 1-14_95_数据库连接池
资料课件/
评论0