![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 93
dxx707099957
这个作者很懒,什么都没留下…
展开
-
MySQL日志系统:redo log、binlog、undo log 区别与作用
日志系统主要有redo log(重做日志)和binlog(归档日志)。redo log是InnoDB存储引擎层的日志,binlog是MySQL Server层记录的日志, 两者都是记录了某些操作的日志(不是所有)自然有些重复(但两者记录的格式不同)。图来自极客时间的mysql实践,该图是描述的是MySQL的逻辑架构。redo log日志模块redo log是InnoDB存储引擎层的日志,又称重做日志文件,用于记录事务操作的变化,记录的是数据修改之后的值,不管事务是否提交都会记录下来。在实例和转载 2022-03-24 15:52:35 · 211 阅读 · 0 评论 -
默默学Sharding-Sphere(五)
从本篇开始,开始对项目和源码进行一个分析学习。可能存在不准确的地方,望指出。基于版本3.1.0-M1版本。项目结构从项目模块拆分和依赖关系来看,大致我们可以看出各模块的主要职责和特点。sharding-core:核心模块sharding-transaction-core:事务模块核心sharding-jdbc-core:jdbc核心集成模块sharding-transaction-2pc-spi:2阶段提交事务SPI抽象sharding-transaction-2pc-xa:XA实现s转载 2020-09-15 20:52:06 · 328 阅读 · 0 评论 -
默默学Sharding-Sphere(四)
前三篇对sharding-sphere产品进行了一个入门学习,这篇转自某博客专栏对sharding-sphere作者的一些问题,加强对sharding-sphere进行一个认识。Q:Sharding-JDBC 的设计初衷是什么?旨在解决什么场景的问题?Sharding-JDBC 的设计初衷是想提供一个数据库中间层,用于透明的处理分库分表,而无需业务开发人员在业务代码中根据分片键生成 SQL。第一版的分库分表并不是现有的 Sharding-JDBC,而是当当的一个内部框架 ddframe 的数据库模块,d转载 2020-09-15 20:50:09 · 236 阅读 · 0 评论 -
默默学Sharding-Sphere(三)
接上篇,使用文档。使用文档数据分片不使用Spring引入Maven依赖<dependency> <groupId>io.shardingsphere</groupId> <artifactId>sharding-jdbc-core</artifactId> <version>${sharding-sphere.version}</version></dependency&转载 2020-09-15 20:46:25 · 529 阅读 · 0 评论 -
默默学Sharding-Sphere(二)
从上篇了解Sharding-Sphere的一个背景、定位以及规划后,我再去看了下官方文档,发现sharding-sphere活跃还是有原因的,文档一个字:详细。这里我大致拆分成两份:说明文档、使用文档。说明文档背景传统的将数据集中存储至单一数据节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足互联网的海量数据场景。从性能方面来说,由于关系型数据库大多采用B+树类型的索引,在数据量超过阈值的情况下,索引深度的增加也将使得磁盘访问的IO次数增加,进而导致查询性能的下降;同时,高并发访问请转载 2020-09-15 20:38:53 · 799 阅读 · 0 评论 -
默默学Sharding-Sphere(一)
概念篇Sharding-Sphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。 他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。Sharding-Sphere定位为关系型数据库中间件,旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数据库。 它与转载 2020-09-15 20:37:13 · 147 阅读 · 0 评论 -
10、MySQL之MVCC简介
一丶什么是MVCC?MVCC (Multi-Version Concurrency Control) (注:与MVVC相对的,是基于锁的并发控制,Lock-Based Concurrency Control)是一种基于多版本的并发控制协议,只有在InnoDB引擎下存在。MVCC是为了实现事务的隔离性,通过版本号,避免同一数据在不同事务间的竞争,你可以把它当成基于多版本号的一种...原创 2019-07-16 18:39:25 · 201 阅读 · 1 评论 -
9、MySQL高级 之 explain执行计划详解
使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。explain执行计划包含的信息其中最重要的字段为:id、type、key、rows、Extra各字段详解idselect查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序三种情况:1、...原创 2019-07-16 18:37:30 · 90 阅读 · 0 评论 -
8、数据库锁
文章目录一 锁分类(按照锁的粒度分类)表级锁行级锁二 锁分类(按照是否可写分类)共享锁(s)排他锁(X):三 另外两个表级锁:IS和IX四 死锁和避免死锁五 总结与补充一 锁分类(按照锁的粒度分类)Mysql为了解决并发、数据安全的问题,使用了锁机制。可以按照锁的粒度把数据库锁分为表级锁和行级锁。表级锁Mysql中锁定 粒度最大 的一种锁,对当前操作的整张表加锁,实现简单 ,资源消耗也比...原创 2019-07-16 18:36:12 · 92 阅读 · 0 评论 -
7、数据库索引的原理
一、摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。二、常见的查询算法及数据结构为...原创 2019-07-16 18:35:38 · 159 阅读 · 0 评论 -
5、数据库死锁
1. mysql都有什么锁MySQL有三种锁的级别:页级、表级、行级。表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般算法:next KeyLocks锁,同时锁住记录(...原创 2019-07-16 18:35:07 · 172 阅读 · 0 评论 -
Hibernate的事务管理
Hibernate的事务管理事务(Transaction)是工作中的基本逻辑单位,可以用于确保数据库能够被正确修改,避免数据只修改了一部分而导致数据不完整,或者在修改时受到用户干扰。作为一名软件设计师,必须了解事务并合理利用,以确保数据库保存正确、完整的数据。数据库向用户提供保存当前程序状态的方法,叫事务提交(commit);当事务执行过程中,使数据库忽略当前的状态并回到前面保存的状态的方法叫...转载 2019-03-11 16:43:26 · 170 阅读 · 0 评论 -
数据库两大神器【索引和锁】
一、索引在之前,我对索引有以下的认知:索引可以加快数据库的检索速度 表经常进行INSERT/UPDATE/DELETE操作就不要建立索引了,换言之:索引会降低插入、删除、修改等维护任务的速度。 索引需要占物理和数据空间。 了解过索引的最左匹配原则 知道索引的分类:聚集索引和非聚集索引 Mysql支持Hash索引和B+树索引两种看起来好像啥都知道,但面试让你说的时候可能就GG了:...转载 2019-03-21 10:33:54 · 103 阅读 · 0 评论 -
一千行MySQL命令
基本操作/* Windows服务 */-- 启动MySQL net start mysql-- 创建Windows服务 sc create mysql binPath= mysqld_bin_path(注意:等号与值之间有空格)/* 连接与断开服务器 */mysql -h 地址 -P 端口 -u 用户名 -p 密码SHOW PROCESSLIST -- 显示哪些线程...转载 2019-03-27 16:14:33 · 154 阅读 · 0 评论 -
Ubuntu 安装mysql和简单操作
ubuntu上安装mysql非常简单只需要几条命令就可以完成。 1.sudo apt-get install mysql-server 2.apt-get isntall mysql-client 3. sudo apt-get install libmysqlclient-dev 安装过程中会提示设置密码什么的,注意设置了不要忘了,安装完成之后可以...转载 2019-05-13 22:25:16 · 85 阅读 · 0 评论 -
6. 存储引擎的 InnoDB 与 MyISAM
6. 存储引擎的 InnoDB 与 MyISAM区别MyISAMInnoDB构成上的区别:每个MyISAM在磁盘上存储成三个文件。第一个 文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩 展名为.MYD (MYData)。索引文件的扩 展名是.MYI (MYIndex)。基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,Inno...原创 2019-07-16 12:43:29 · 81 阅读 · 0 评论 -
1、MySQL基本概念
基本操作/* Windows服务 */-- 启动MySQL net start mysql-- 创建Windows服务 sc create mysql binPath= mysqld_bin_path(注意:等号与值之间有空格)/* 连接与断开服务器 */mysql -h 地址 -P 端口 -u 用户名 -p 密码SHOW PROCESSLIST -- 显示哪些线程正在运...原创 2019-07-16 18:33:01 · 82 阅读 · 0 评论 -
2、数据库索引
一.索引的作用一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重。在数据量和访问量不大的情况下,mysql访问是非常快的,是否加索引对访问影响不大。但是当数据量和访问量剧增的时候,就会发现mysql变慢,甚至down掉,这就必须要考虑优化sql了,给数据库建立正确合理的索...原创 2019-07-16 18:33:34 · 98 阅读 · 0 评论 -
3、数据库的悲观锁和乐观锁
悲观锁和乐观锁虽然数据库的隔离级别可以解决大多数问题,但是灵活度较差,为此又提出了悲观锁和乐观锁的概念。1、悲观锁悲观锁,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度。因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制。也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统的数据访问层中实...原创 2019-07-16 18:34:05 · 131 阅读 · 0 评论 -
数据库索引学习
思维导图-索引篇系列思维导图源文件(数据库+架构)以及思维导图制作软件—XMind8 破解安装,公众号后台回复:“思维导图”免费领取!(下面的图片不是很清楚,原图非常清晰,另外提供给大家源文件也是为了大家根据自己需要进行修改)下面是我补充的一些内容为什么索引能提高查询速度以下内容整理自: 地址:https://juejin.im/post/5b55b842f265...转载 2019-03-08 22:20:55 · 77 阅读 · 0 评论