![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
文章平均质量分 95
架构攻城之路
敢拒绝,还有梦。
有qian,有闲,有成长;
有你,也有我。
展开
-
【MySQL笔记】正确的理解MySQL的乐观锁,悲观锁与MVCC
!首先声明,MySQL的测试环境是5.7前提概念 数据库并发的三种场景 乐观锁和悲观锁的澄清 悲观锁 什么是悲观锁? 悲观锁的实现 悲观锁的优点和缺点 乐观锁 什么是乐观锁? 乐观锁的实现 乐观锁的优缺点 MVCC多版本并发控制 什么是MVCC? 总结 乐观锁和悲观锁的抉择 OCC,PCC,MVCC 参考资料前提概念数据库并发的三种场景数据库并发场景有三种,分别为:读-读:不存在任何问题,也不需要并发控制 读-写:有隔离...转载 2021-03-08 09:44:55 · 244 阅读 · 0 评论 -
【MySQL笔记】正确的理解MySQL的MVCC及实现原理
MVCC多版本并发控制!首先声明,MySQL的测试环境是5.7前提概要 什么是MVCC 什么是当前读和快照读? 当前读,快照读和MVCC的关系 MVCC实现原理 隐式字段 undo日志 Read View(读视图) 整体流程 MVCC相关问题 RR是如何在RC级的基础上解决不可重复读的? RC,RR级别下的InnoDB快照读有什么不同? 前提概要什么是MVCC?MVCC全称Multi-Version Concurrency Control,转载 2021-03-08 08:35:43 · 309 阅读 · 0 评论 -
池化技术-你真的熟悉数据库连接池吗?手写实现连接池
目录一、数据库连接池简介1、what? 什么池?2、where? 在哪里应用?3、数据库连接池的实现及原理4、数据库连接池的优点5、连接池与jdbc的关系6、基本功能7、设计思路二、应用实战1、SpringBoot应用2、依赖3、jdbc工具类4、连接池接口定义5、具体实现6、Controller7、业务逻辑类8、测试往期...原创 2020-03-02 09:59:37 · 843 阅读 · 0 评论 -
【Sharding-JDBC系列二】一文快速入门分库分表中间件 Sharding-JDBC (必修课)
作为Sharding-JDBC分库分表实战系列的开篇文章,我们在前文中回顾了一下分库分表的基础知识,对分库分表的拆分方式有了一定的了解,下边我们介绍一下Sharding-JDBC框架和快速的搭建一个分库分表案例,为讲解后续功能点准备好环境。一、Sharding-JDBC 简介Sharding-JDBC最早是当当网内部使用的一款分库分表框架,到2017年的时候才开始对外开源,这几年在大量社区贡献者的不断迭代下,功能也逐渐完善,现已更名为ShardingSphere,2020年4⽉16⽇正式成为...转载 2020-11-10 14:13:30 · 1000 阅读 · 0 评论 -
Spring Boot 多数据源(读写分离)方案实现
目录1. 概述2. 实现方式2.1 方案一2.2 方案二2.3 方案三3. baomidou 多数据源4. baomidou 读写分离5. MyBatis 多数据源6. Spring Data JPA 多数据源7. JdbcTemplate 多数据源8. Sharding-JDBC 多数据源9. Sharding-JDBC 读写分离666. 彩蛋摘要: 原创出处http://www.iocoder.cn/Spring-Boot/dynamic-da.转载 2020-09-24 16:26:17 · 2082 阅读 · 1 评论 -
MySQL索引使用策略及优化
索引使用策略及优化MySQL的优化主要分为结构优化(Scheme optimization)和查询优化(Query optimization)。本章讨论的高性能索引策略主要属于结构优化范畴。本章的内容完全基于上文的理论基础,实际上一旦理解了索引背后的机制,那么选择高性能的策略就变成了纯粹的推理,并且可以理解这些策略背后的逻辑。示例数据库为了讨论索引策略,需要一个数据量不算小的数据库作为...转载 2020-03-30 15:28:59 · 282 阅读 · 1 评论 -
【Sharding-JDBC系列一】Spring Boot整合Sharding-JDBC实现读写分离
目录Sharding-JDBC简介搭建mysql主从数据库Springboot应用搭建pom依赖application.properties配置测试开启日志(非必须)Sharding-JDBC简介ShardingSphere-JDBC 定位为轻量级的分布式数据库中间件解决方案,在 Java 的 JDBC 层提供的额外服务。 它使用客户端直连数据库,以 jar 包形式提供服务,无需额外部署和依赖,可理解为增强版的 JDBC 驱动,完全兼容 JDBC 和各种 ORM 框架。原创 2021-01-22 11:39:59 · 2370 阅读 · 2 评论 -
mycat分表分库的原理是什么
1. mycat是怎样实现分库分表的?mycat里面通过定义路由规则来实现分片表(路由规则里面会定义分片字段,以及分片算法)。分片算法有多种,你所说的hash是其中一种,还有取模、按范围分片等等。在mycat里面,会对所有传递的sql语句做路由处理(路由处理的依据就是表是否分片,如果分片,那么需要依据分片字段和对应的分片算法来判断sql应该传递到哪一个、或者哪几个、又或者全部节点去执行)2. mycat适用于哪些场景?相对于海量存储的Nosql的适用场景又如何?数据量大到单机hold不住,而又不希望转载 2020-09-12 16:36:37 · 1099 阅读 · 0 评论 -
【mycat系列三】SpringBoot + mybatisPlus + Mycat + Mysql (多主多从) 整合
一、前言通过前两篇教程,我们可以通过docker搭建Mysql多主多从(主从复制)服务,并使用Mycat中间件实现分片、读写分离等《基于 Docker 搭建 MySQL 主从复制的详细教程》《Docke安装mycat并实现MySQL主从复制、读写分离》下面,我们进入实际的项目开发演示,如何整合SpringBoot + MybatisPlus + Mycat 的demo 示例。二、整合SpringBoot + MybatisPlus + Mycat1、新建一个SpringBoo..原创 2020-09-12 10:08:03 · 2415 阅读 · 1 评论 -
【mycat系列二】Docker安装mycat并实现MySQL的读写分离
一、前言通过上一节,《基于 Docker 搭建 MySQL 主从复制(一主两从)的详细教程》我们可以使用docker 配置 mysql 两主四从通过以下命令可以查看每个容器的ipdocker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称|容器id二、安装mycat1、拉取mycat镜像docker pull longhronshens/mycat-docker2、创建文件夹,用于保存my..原创 2020-09-11 17:40:05 · 1523 阅读 · 0 评论 -
【mycat系列一】基于 Docker 搭建 MySQL 主从复制的详细教程
一、安装docker1、安装dockeryum install docker2、安装成功启动Docker后,查看版本docker version3、启动Docker并设置为开机自启动systemct1 start docker.service systemct1 enable docker.service4、配置docker镜像加速器(阿里云)https://blog.csdn.net/weixin_43569697/article/detail..原创 2020-09-10 17:31:34 · 1143 阅读 · 0 评论 -
mysql百万级数据查询优化
1.两种查询引擎查询速度(myIsam 引擎 )InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行。MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作有些不同,InnoDB类型的表用count(*)或者count(主键),加上where col 条件。其中col列是表的主键之外的其他具有唯一约束索引的列。这样查询时速度会很快。就是可以避免转载 2020-09-01 13:50:15 · 1677 阅读 · 0 评论 -
【MySQL】insert批量插入优化方案
对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长。特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时或十几个小时之久。因此,优化数据库插入性能是很有意义的。经过对MySQL innodb的一些性能测试,发现一些可以提高insert效率的方法,供大家参考参考。 一条SQL语句插入多条数据 常用的插入语句如: INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VAL转载 2020-08-27 09:03:40 · 4915 阅读 · 0 评论 -
【面试题】互联网项目中mysql应该选什么事务隔离级别
知识点总结-----------------------------------------------------------------------------------------------------------------------1.数据库默认隔离级别: mysql ---repeatable,oracle,sql server ---read commited2.mysql binlog的格式三种:statement,row,mixed3.为什么mysql用的是repe.转载 2020-07-23 09:10:39 · 608 阅读 · 0 评论 -
MySQL索引底层实现原理
索引的本质MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。我们知道,数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找(linear search),这种复杂度为O(n)的算法在数据量很大时...转载 2020-03-30 10:27:44 · 227 阅读 · 0 评论 -
MySQL数据库之互联网常用分库分表方案
一、数据库瓶颈↑不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。1、IO瓶颈第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 ->分库和垂直分表。...转载 2019-12-14 16:05:19 · 192 阅读 · 0 评论 -
日均5亿查询量的京东订单中心,为什么舍MySQL用ES?
来源:京东技术订阅号(ID:jingdongjishu)作者:张sir京东到家订单中心系统业务中,无论是外部商家的订单生产,或是内部上下游系统的依赖,订单查询的调用量都非常大,造成了订单数据读多写少的情况。我们把订单数据存储在MySQL中,但显然只通过DB来支撑大量的查询是不可取的。同时对于一些复杂的查询,MySQL支持得不够友好,所以订单中心系统使用了Elasticsearch来...转载 2019-12-04 14:12:10 · 252 阅读 · 0 评论 -
后端程序员必备:mysql数据库相关流程图/原理图
前言整理了一些Mysql数据库相关流程图/原理图,做一下笔记,大家一起学习。1.mysql主从复制原理图mysql主从复制原理是大厂后端的高频面试题,了解mysql主从复制原理非常有必要。主从复制原理,简言之,就三步曲,如下:主数据库有个bin-log二进制文件,纪录了所有增删改Sql语句。(binlog线程) 从数据库把主数据库的bin-log文件的sql语句复制过来。(i...转载 2019-08-05 08:54:25 · 585 阅读 · 0 评论