交易(一)


图片来源

本篇是一篇译文,原文地址
交易,是比特币系统中最重要的组成部分。比特币系统的设计,围绕着确保交易的创建/传播/合法性验证,最后将其添加全局大账本而展开。
交易,是参与者之间传输的数据结构。每笔交易,是比特币上区块链(全球复式记账账本)的公共实体。

...More

InnoDB 锁


InnoDB 同时支持行锁和表锁。从是否独占锁的角度上讲,这些锁又可以分为共享锁和排它锁。锁机制,进一步完善了并发下数据一致性的策略。

...More

MySQL 索引概述


索引,是数据库内资源定位的一种机制。正如你去一个学校找人,如果你只知道这个人的名字,可能是需要一间教室一间教室的去找。但是如果你还知道他在哪个年级哪个班,直接就找到了。

...More

MySQL 事务处理

Transactions are not a law of nature; they were created with a purpose, namely to simplify the programming model for applications accessing a database. By using transactions, the application is free to ignore certain potential error scenarios and concurrency issues, because the database takes care of them instead (we call these safety guarantees).

...More

再谈数据库隔离

本篇是译文,原文地址

当两个或跟更多的工作单位(它可以是进程、线程、程序或任何可执行体)同时工作,特别是访问或者修改同一个数据,这时,并发问题就发生了。

举个现实中的例子,如果在同一个十字路口两辆车同时行进(非同向),没有停止信号或者交通灯,它们彼此看不到对方,最终它们驶向同一个车道,它们相撞了。

相似的,两个程序更新数据库中的同一行数据,其中一个程序可能就会覆写了另外一个程序的数据(考虑不使用数据库锁这种机制)。

即使两个程序都在单线程环境中可以正确执行,并发问题也会影响结果的正确性。

...More

JDBC 和 MyBatis

JDBC,是一种 SUN 为统一数据库访问而制定的接口规范。数据库厂商只要实现该接口,Java 层就可以通过该接口访问、管理数据库。它们之间,通过 桥接模式 (事物对象和其具体行为、具体特征分离开来,使它们可以各自独立的变化) 实现数据访问。

MyBatis 是 ORM(Object/Relational Mapping,对象-关系映射) 框架。其插入在 JDBC 和应用程序之间完成了对数据库操作的封装,但是同时,由于其支持定制化 SQL。

...More

IoC 容器、Bean 和常用注解

IoC(Inversion of Control) 也被称为 DI (Dependency Injection)。
对象通过构造参数、工厂参数、set方法等,确定了依赖关系,而 IoC 容器在创建这个对象的时候,将自动为这个对象注入其所需要的依赖。这个过程,就是非常基础的控制反转(IoC)。

beans,就是上面所述由 IoC 容器创建并管理的对象。

...More

在 Spring Boot 中使用 Redis 进行缓存

本文是一篇译文,原文地址

系统运行变慢,是一种很普遍的问题。即使代码非常优秀,但是在高负载下,可能也会不堪一击。缓存,是一种快速的、廉价的提升性能以及响应事件的重要方式。

简而言之,缓存是一种性能策略。调用结果被放置在内存中,因此再下次使用时,将不必再重新执行。我们可以看到,如果请求的数据再缓存中(称之为缓存命中),我们将节省很多时间和资源。红色的数据快,代表了一种糟糕的情况,即缓存缺失,这种情况下,就需要加载并重新计算,这也将增加响应时间。

...More

© 2025 YueGS