一 MySQL总体架构 上图是《高性能MySQL》中对MySQL总体架构的描述,客户端对服务端的连接有很多条,有一个专门的处理组件,类似tomcat使用线程池处理请求。解析器负责解析sql语句,在这同时会访问缓存如果缓存有目标数据就直接返回。如果需要执行sql语句,还会先经过优化器重新编排执行过程( ...
分类:
数据库 时间:
2019-10-30 16:43:06
阅读次数:
173
转:https://my.oschina.net/wnjustdoit/blog/1606215 前言:在分布式环境中,我们经常使用锁来进行并发控制,锁可分为乐观锁和悲观锁,基于数据库版本戳的实现是乐观锁,基于redis或zookeeper的实现可认为是悲观锁了。乐观锁和悲观锁最根本的区别在于线程之 ...
分类:
其他好文 时间:
2019-10-29 23:38:54
阅读次数:
92
InnoDB与MyISAM等存储引擎对比 InnoDB存储引擎介绍 InnoDB引擎是Mysql的默认的存储引擎,他有很多自己的特性,下面一一列举。 支持事务,InnoDB存储引擎主要就是为了在线事务处理(OLTP)的应用而设计的。 行锁设计,支持外键,非锁定读。 支持多版本的并发控制(MVCC)来 ...
分类:
数据库 时间:
2019-10-29 09:13:57
阅读次数:
100
乐观锁与悲观锁 北京这两天天气不好,时晴时阴,最近有有点累,所以在家里休息了两天,看了一下乐观锁与悲观锁,虽然没有茅塞顿开,但是也有点收获。 先想一想为什么要使用锁? 在用户访问你的网站时,同一时间可能会有多个用户更新相同的记录,这时候他们同时访问数据库,这就会产生冲突,这就是著名的并发(高并发)。 ...
分类:
其他好文 时间:
2019-10-27 01:20:47
阅读次数:
111
数据库事务的四大特性: 事务(Transaction)是并发控制的基本单位。所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转帐工作:从一个帐号扣款并使另一个帐号增款,这两个操作要么都执行,要么都不执行。 1、数据库事务必须具备ACID特性,ACI ...
分类:
数据库 时间:
2019-10-07 19:40:50
阅读次数:
130
from: https://segmentfault.com/a/1190000009374567 什么是MVCC MVCC即Multi-Version Concurrency Control,中文翻译过来叫多版本并发控制。 MVCC是解决了什么问题 众所周知,在MYSQL中,MyISAM使用的是表 ...
分类:
数据库 时间:
2019-09-23 15:19:26
阅读次数:
108
redo log和undo log、事务 redo log 如果系统突然崩溃,一些在缓存中的修改还没来的及同步到磁盘中,用redo log就可以恢复这些修改,Redo log就是记录这些修改的日志。这些对页面的修改有一些是原子操作,比如有些插入伴随着页面分裂和页的新建(悲观插入),此时这些分裂和修改 ...
分类:
其他好文 时间:
2019-09-21 15:19:53
阅读次数:
103
1、图解Elasticsearch内部如何基于_version进行乐观锁并发控制 (1)_version元数据 PUT /test_index/test_type/6{ "test_field": "test test"} { "_index": "test_index", "_type": "te ...
分类:
其他好文 时间:
2019-09-21 12:41:34
阅读次数:
116
查询缓存"查询缓存"---是把将查到的结果缓存下载,如果查询语句相同,则直接把缓存的结果返回.如果应用程序在某一个场景多次需要查询,且不需要经常更新,则使用查询缓存可以有一定的性能提升。如图所以可以查看是否开启了缓存功能query_cache_type的值为on;表示已开启了缓存功能?query_cache_type:是否开启缓存功能,取值为ON,OFF,DEMAND,表示已启
分类:
数据库 时间:
2019-09-18 17:27:18
阅读次数:
208
mvcc 全称 multiple version concurrency control 多版本并发控制,是数据库领域比较常用的一种非锁并发技术。 mysql 的innodb中,在RR、RC级别会使用mvcc来提升并发。 实现原理: 首先理解几个基本知识点。 一、mysql在行都设置了默认列(对查询 ...
分类:
数据库 时间:
2019-09-16 19:57:46
阅读次数:
129