写给工程师的笔记与面试指北
聚焦分布式架构、中间件原理、线上排查与高频面试题,沉淀可复用的工程实践。
JDBC驱动开发为什么需要了解JVM原理
JDBC驱动开发为什么需要了解JVM原理 JDBC驱动作为Java应用程序与数据库之间的关键中间件,需要处理大量数据、管理资源和优化性能。深入了解JVM原理对于开发高性能、稳定且资源友好的JDBC驱动至关重要。从pgjdbc源码中,我们可以看到以下几个关键方面: 1. 内存管理与对象生命周期 案例:
PostgreSQL 与 MySQL 的 ACID/MVCC 对比
1、MVCC介绍 1.1、事务隔离级别 MVCC Multi-version Concurrency Control ,顾名思义指的是多版本并发控制。在介绍MVCC之前我们先来简单了解下事务的隔离级别: read uncommitted:脏读,一个事务可以读到另外一个事务未提交的数据,大多数关系型数
MySQL 中的集群部署方案详解及对比
MySQL 中的集群部署方案详解及对比 前言 MySQL 提供了多种部署方案,以满足不同场景下的高可用性、扩展性和容灾需求。以下整理了常见的 MySQL 集群方案,并对它们的特点、优缺点以及适用场景进行了分析,最后提供一个对比总结。 1. MySQL Replication 特点: 官方主从复制方案
MySQL 读写分离后的 Spring 设置
在 Spring Boot 中适配主从复制的 MySQL 数据库,可以通过以下步骤实现读写分离。主要思路是使用不同的数据源来分别处理读和写操作。 1. 配置数据源 你需要配置两个数据源:一个用于主库(写操作),一个用于从库(读操作)。 # application.yml spring: data
MySQL 数据查询慢的解决方案
1. 开启慢查询日志 目的: 记录执行时间超过设定阈值的 SQL 查询,以便后续分析。 操作步骤: 查看慢查询日志设置 sql SHOW VARIABLES LIKE '%slow_query_log%'; - 用于检查当前慢查询日志是否开启。 开启慢查询日志 sql SET GLOBAL slow
MySQL 幻读问题与 FOR UPDATE
select ... for update的意义是什么,如果采用select ... for update 怎么释放锁。 为什么开启事务begin后 使用select ... for update,没有从快照获取数据呢,出现幻读的问题 SELECT ... FOR UPDATE 是一种用于数据库中加
MySQL 事务隔离级别
在数据库中,脏读、幻读和不可重复读是并发控制相关的概念,它们描述了在并发环境下数据访问可能出现的不同问题。为了保证数据的准确性和一致性,数据库通常会通过事务隔离级别来解决这些问题。 1. 脏读(Dirty Read) 脏读指的是一个事务读取了另一个未提交事务所更改的数据。假设有两个事务:事务A和事务
MySQL 出现死锁怎么处理
show engine innodb status; SHOW PROCESSLIST; KILL thread_id; 一个说明文章 使用示例和说明文章
MinIO 权限控制
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": ["*"] }, "Action": [
Elasticsearch 索引 mapping 设置
es中如何设置索引的mapping值,来指定对应索引的类型 Elasticsearch 设置mapping的规范模版 { "settings": { "index": { "number_of_shards": "1", "max_result_w