zhaoyh's blog


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

  • 搜索

数据库开发入门级教程

发表于 2023-05-12 | 分类于 基础服务

1. 概述

1.1 数据库定义

数据是数据库中存储的基本对象,包括数字、图像、音频等形式,在进行逐级抽象后存储在数据库中。数据库是由特定软件,即数据库管理系统(DBMS)搭建、处理、维护的数据及数据间逻辑关系的集合体。它面向多种应用,可以被多个用户、多个应用程序所共享。DBMS是负责数据库搭建、使用和维护的大型系统软件,它对数据进行统一控制管理,以保证数据的完整性和安全性。数据库和数据库管理系统共同组成了数据库系统。

阅读全文 »

聊一聊单元测试

发表于 2023-02-20 | 分类于 其他

1. 单元测试释疑

今天聊聊单元测试。

单元测试的概念,在维基百科中是这样描述的:

在计算机编程中,单元测试又称为模块测试,是针对程序模块来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类、抽象类、或者派生类中的方法。

阅读全文 »

分布式事务总结

发表于 2022-11-16 | 分类于 基础服务

1. 分布式事务产生的背景

1.1 数据库水平拆分

对于大部分的业务而言,在起步阶段,为了快速上线,一般都是单库单表的。但是随着业务的扩张,数据量也随着扩增,单库的性能逐渐变差,就会有数据库的单点压力。因此我们就需要考虑数据库的分库分表方案了。分库分表的目的在于减少单库的负担,提高读写性能。策略可以归纳为拆表和拆分库,拆表是把表的字段进行拆分,即一张表拆分为多张表,这样就使得单表的行数降低,提升查询效率。但是单纯的库内分表只解决了单表的数据过大的问题,并不能解决在同一数据库服务器上的硬件瓶颈,因此需要同时考虑拆库,将原来的单库单表进行拆分数据片,如下图所示:

阅读全文 »

RedisLockRegistry分布式锁应用及分析

发表于 2021-03-09 | 分类于 基础服务

1. 关于分布式锁

分布式锁就是应用在分布式环境下多个节点之间进行同步或者协作的锁,分布式锁和普通锁一样,也需要有以下特性:

  • 互斥性,保证只有持有锁的某个线程才能进行操作,即在任意时刻,只有一个节点的客户端能持有分布式锁;
  • 可重入性,在同一个节点进程内,同一个线程可多次获取锁;
  • 超时处理机制,需要支持超时自动释放锁,避免死锁的产生,以及避免其他节点长期等待造成的资源浪费;
  • 锁释放机制,加锁和解锁必须是节点内的同一个线程;
阅读全文 »

MySQL数据库锁应用总结

发表于 2021-02-23 | 分类于 基础服务

我们在使用MySQL数据库过程中,如果数据库的读写并发较高,会面对一系列的数据一致性的问题,此时需要对数据表或记录加锁操作来解决并发的一致性问题。

阅读全文 »

深入理解G1垃圾收集器

发表于 2021-01-29 | 分类于 JVM系列

1. 垃圾收集器简析

Java语言一直使用GC技术进行JVM自动内存管理,避免手动管理带来的一系列问题,以提升开发人员效率。衡量垃圾回收的三个最重要指标:

  • 内存占用(Footprint);
  • 吞吐量(Throughput);
  • 延迟(Latency);
阅读全文 »
12…8<i class="fa fa-angle-right"></i>

45 日志
7 分类
58 标签
RSS
© 2023 zhaoyh
京ICP备2022006929号-1