数据库相关入门【笔记】
数据库相关入门【笔记】
什么是关系型数据库?
关系型数据库是基于关系代数理论的一个二维表,其缺点是表结构不直观,实现起来复杂,速度慢,优点也很明显,就是健壮性高,社区庞大
健壮性的体现一部分是因为外连接的原因
事务
其满足ACID四种特性
atomicity,简单来说就是一堆的事情,要么都做,要么就都不做
Consistency,在关系型数据库中存在很多的约束,这些约束必须要满足,这些约束包含了物理的约束和逻辑上的约束
isolation,我做一件事儿和你做一件事儿是相互独立的,这是四种特性里面最关键的
durability,做完一件事以后这件事即便是断电也会存在
事物的隔离等级
乐观锁
乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制。悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。但随之而来的就是数据库性能的大量开销,特别是对长事务而言,这样的开销往往无法承受
而乐观锁机制在一定程度上解决了这个问题。乐观锁,大多是基于数据版本( Version )记录机制实现
何谓数据版本?即为数据增加一个版本标识,在基于数据库表的版本解决方案中,一般是通过为数据库表增加一个 “version” 字段来实现。读取出数据时,将此版本号一同读出,之后更新时,对此版本号加一
此时,将提交数据的版本数据与数据库表对应记录的当前版本信息进行比对,如果提交的数据版本号等于数据库表当前版本号,则予以更新,否则认为是过期数据
乐观锁的实现
读取数据,记录timestamp
修改数据
检查和提交数据
一些程序调优的方法
改善数据访问方式以提高缓存命中率
利用数据库连接池替代直接的数据库访问
使用迭代替代递归
合并多个远程调用批量发送
共享冗余数据提高访问效率
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!