Navicat 博客

关系数据库事务中的对象锁定 - 第 2 部分 2021 年 6 月 16 日,由 Robert Gravelle 撰写

悲观与乐观锁定

关系数据库系统(RDBMS)在修改(例如,更新或删除)表记录时采用各种锁定策略来强制实施事务 ACID 属性。有时,当两个并发事务无法进行时,可能会发生死锁,因为每个事务都在等待对方释放锁定。在本系列的第 1 部分中,我们知道了什么是关系数据库中的对象锁定、不同类型的锁定和死锁。在今天的后续文章中,我们将比较悲观锁定和乐观锁定的优缺点。

关系数据库事务中的对象锁定 2021 年 6 月 8 日,由 Robert Gravelle 撰写

第 1 部分:概述、锁粒度和死锁

最近,我们有一些关于数据库事务的文章,有关强制执行四个 ACID 属性(原子性、一致性、隔离性、持久性)。在今天的文章中,我们将研究关系数据库(RDBMS)用于强制执行 ACID 属性的另一种机制,即对象锁定。具体来说,我们将了解它是什么,它在 RDBMS 事务中扮演什么角色,以及锁定可能导致的一些副作用。虽然数据库对象锁定可能是一个相当技术性和复杂的主题,但我们会以浅白的用语解释它并尽可能简单易明。

DBeaver 与 Navicat:数据库工具对决 2021 年 6 月 2 日,由 Robert Gravelle 撰写

header (18K)

在我担任 IT 顾问的早期,我依靠各种开源工具来完成我的工作。我的理由是,我节省购买商业产品的成本。几年后,我才意识到商业产品实际上可以通过简化和自动化定期执行的许多常见工作来节省时间和金钱。

将 SQL COUNT() 函数与 GROUP BY 一起使用 2021 年 5 月 28 日,由 Robert Gravelle 撰写

早在 2020 年 8 月,SQL Count() 函数的多种用法文章概述了 COUNT 的许多输入参数变体。使用 COUNT() 函数的另一种方法是将其与 GROUP BY 子句结合使用。将 COUNT() 函数与 GROUP BY 结合使用对于根据各种分组分解计数很有用。在今天的文章中,我们将通过使用 Navicat Premium 作为我们的数据库客户端来查询 Sakila 示例数据库,来学习如何按照不同的准则对计数进行分组。

重要的 SQL Server 函数 - 其他函数 2021 年 5 月 24 日,由 Robert Gravelle 撰写

第 4 部分:其他函数

最后一类重要的 SQL Server 函数包括那些处理 NULL、转换和控制流的函数。这些函数绝不是剩菜,是你可能会遇到的最有用的函数之一!

COALESCE

每当你选择值不是强制性的列时,你肯定会遇到 NULL 值。这是有道理的,因为 NULL 值表示没有值或缺少的信息。麻烦的是,如果将 NULL 值包括在计算以及可能对列数据执行的其他操作中,则可能会造成严重破坏。

Navicat 文章
频道条目
分享
文章归档