SpringBoot多数据源配置与动态切换技术详解
一、多数据源应用场景 在实际开发中,SpringBoot应用连接多个数据库的需求日益普遍,主要应用于以下场景: 读写分离架构:主库负责写入,从库负责查询,QPS可提升3-5倍 业务分库:订单库、用户库分离,降低单库压力 多租户系统:每个租户独立数据库,实现数据隔离 异构数据库:MySQL + MongoDB混合使用,满足不同业务需求 二、核心实现方…
2026-1-06 17:35
|
1042 字
|
6 分钟
谈谈 InnoDB 引擎中的表级锁、页级锁、行级锁
一、InnoDB锁机制概述 MySQL InnoDB存储引擎通过多版本并发控制(MVCC)与锁机制协同工作,实现了高效的事务隔离与数据一致性保障。InnoDB支持多种锁类型,按粒度可分为表级锁、页级锁和行级锁,其中行级锁是InnoDB的核心特性,也是其区别于MyISAM等存储引擎的关键优势。 二、表级锁(Table-Level Locking) 2…
2026-1-06 9:11
|
2302 字
|
9 分钟
MySQL 乐观锁与悲观锁怎么实现?
在数据库并发控制中,乐观锁和悲观锁是两种核心的并发控制策略,它们分别适用于不同的业务场景。本文将详细介绍这两种锁机制在MySQL中的实现方式、适用场景以及实际应用案例。 一、悲观锁:先加锁再操作 1. 核心思想 悲观锁认为并发冲突随时可能发生,因此在访问数据前先对数据加锁,阻止其他事务修改数据,直到当前事务完成操作后才释放锁。 2. 实现方式 在M…
2026-1-06 9:03
|
1164 字
|
6 分钟
什么是数据库范式,为什么要反范式化设计?
一、什么是数据库范式? 数据库范式(Normal Form)是关系型数据库设计中的一系列规范化规则,旨在通过分解表结构、消除数据冗余,确保数据的一致性和完整性。范式理论将数据库设计分为多个等级,从第一范式到第五范式,每个等级都有更严格的规范要求。 1.1 第一范式(1NF) 第一范式是最基础的范式要求,核心规则是字段原子性——每个字段必须是不可再分…
2026-1-06 8:56
|
2880 字
|
11 分钟
MySQL中如何优化多表JOIN?
MySQL多表JOIN的优化是数据库性能调优的核心环节,主要从索引设计、驱动表选择、执行计划分析、SQL写法优化四个维度入手。 一、索引优化:JOIN性能的基石 关联字段必须建索引,这是JOIN优化的首要原则。被驱动表的JOIN字段如果没有索引,MySQL会执行全表扫描,性能急剧下降。例如,orders o JOIN users u ON o.us…
2026-1-06 8:34
|
1145 字
|
5 分钟
为什么互联网大厂不推荐使用多表 join?
互联网大厂不推荐使用多表JOIN,主要基于性能瓶颈、可扩展性差、与微服务架构冲突三大核心原因。在高并发、海量数据的互联网场景下,JOIN操作会产生大量中间结果集,消耗大量CPU和内存资源,容易成为慢查询拖垮数据库。在分库分表架构下,跨物理节点的JOIN查询变得异常复杂甚至无法执行,同时强依赖其他服务的数据库表进行JOIN也违反了微服务边界的封装性。…
2026-1-06 8:30
|
1299 字
|
5 分钟
mysql 数据去重用DISTINCT还是GROUP BY?
在数据去重时,DISTINCT 和 GROUP BY 都可以实现去重功能,但它们在语义、性能和功能上有重要区别: 1. 基本用法对比 DISTINCT -- 简单去重 SELECT DISTINCT department, job_title FROM employees; -- 与聚合函数结合 SELECT COUNT(DISTINCT depa…
2025-12-28 10:18
|
571 字
|
5 分钟
mysql磁盘io过高如何排查解决?
MySQL磁盘IO过高是一个常见的性能问题,需要进行系统性排查。以下是详细的排查和解决步骤: 一、快速诊断 1. 确认IO问题来源 # 查看系统整体IO情况 iostat -x 1 # 重点关注:%util、await、svctm # 查看进程级IO iotop # 或 pidstat -d 1 # 查看MySQL进程的IO pidstat -d …
2025-12-27 20:28
|
506 字
|
8 分钟
为什么Mysql要用B+树来实现呢,而不是B树?
MySQL 选择 B+ 树而不是 B 树作为索引结构,主要是基于以下几个关键优势: 1. 更低的树高与更高的查询效率 B+ 树的内部节点不存储实际数据,只存放键值和子节点指针,因此每个节点能容纳更多键,从而有效降低树的高度。 树高越低,查询时需要的磁盘 I/O 次数越少,尤其适合磁盘存储系统,其中 I/O 是主要性能瓶颈。 2. 更高效的范围查询 …
2025-12-27 20:20
|
667 字
|
3 分钟