数据库/mysql
文章平均质量分 73
莫言静好、
这个作者很懒,什么都没留下…
展开
-
MySQL深度剖析之事务隔离级别和锁机制(2021)
一 事务隔离级别和锁机制1.1 多个事务并发修改同一条数据或者对同一条数据并发读写存在哪些事务并发问题1.1.1 脏读(未提交读)A事务读取了别的事务还未提交的更新,而B事务是有可能回滚的。1.1.2 虚读(不可重复读)A事务读取了别的事务提交的更新,导致A事务范围内多次查询,返回的结果不一样。一般不是什么大问题,取决于你的业务是否允许在同一个事务内每次查询结果不一样,如果允许,就没啥事,如果不允许则就有问题了。1.1.3 幻读A事务读取了别的事务新增的数据,导致事务内每次查询结原创 2021-10-20 07:04:19 · 482 阅读 · 0 评论 -
MySQL深度剖析之数据在磁盘上存储(2021)
一 数据在磁盘上存储格式(row format)表中的数据在磁盘上存储是有格式的,可以在创建表的时候通过row_format指定,比如MySQL5.0之前的reduntant,MySQL5.0 之后的compact和dynamic,两个差不多,区别在于页面溢出处理上,还有compressed,在dynamic基础上使用了压缩算法,MySQL5.7 默认就是dynamic,我们这里以compact举例子,它格式如图所示:二 变长字段长度列表MySQL表中有些字段长度不固定,是动态的,.原创 2021-10-20 06:51:03 · 529 阅读 · 0 评论 -
MySQL深度剖析之Buffer Pool专题(2021)
一 Buffer Pool专题1.1 为什么需要Buffer Pool如果我们每一次查询或者更新都需要到磁盘找到对应数据页,每次的都需要从磁盘加载,那么性能必定是很差的。所以将一些从磁盘加载的数据页,放入到内存缓存起来,而不用每次都从磁盘加载,提升性能。1.2 Buffer Pool数据结构#1 数据库在启动的时候,根据Buffer Pool大小在申请一块内存区域,叫做Buffer Pool,默认大小128MB,可以通过innoddb_buffer_pool_size控制。#2 每一原创 2021-10-20 06:45:31 · 137 阅读 · 0 评论 -
MySQL深度剖析之undo log & redo log & binlog专题(2021)
因为每次对磁盘随机读写影响性能,尤其是高并发的时候,所以引入了Buffer Pool, 即只要更新Buffer Pool中的记录,则算更新成功,那如果更新完了还没有flush到磁盘则宕机了,此时内存的这些修改后的记录就会丢失。所以引入了redo log,在写入内存的时候,同样写入到redo log。如果在事务期间,需要执行多条SQL,如果更新某一条SQL失败,需要回滚,这时候前面的已经写入到内存了,怎么回滚呢? 所以引入了undo log, 在写入内存之前,记录修改数据之前的记录。一 r转载 2021-10-19 22:41:02 · 181 阅读 · 0 评论 -
MySQL深度剖析之SQL语句更新流程(2021)
#1 线程开始执行SQL更新请求之前,会创建事务,并且为当前线程分配一块内存空间叫做binlog cache注意:binlog cache 是每一个线程分配一个;binlog cache大小受binlog_cache_size控制;如果binlog cache达到binlog_cache_size则将binlog cache内容移到一个临时文件中保存,但是这个文件不能超过max_binlog_cache_size,如果超过则报错;客户端断开连接,binlog cache释放#2 SQL...原创 2021-10-19 22:35:31 · 172 阅读 · 0 评论 -
MySQL深度剖析之MySQL架构(2021)
一 为什么需要数据库连接池每一个线程都需要通过JDBC驱动去和数据库建立网络连接,然后执行SQL,SQL执行完毕,线程销毁,如果并发量很大的时候,就需要不同的建立网络连接,然后销毁连接,并且建立网络连接也是需要耗时的,所以效率低下。所以使用数据库连接池,可以循环利用数据库连接。二 数据库MySQL的架构MySQL服务器架构主要分为三层:应用层、逻辑层和物理层。应用层:主要负责和客户端进行交互,建立连接,响应请求逻辑层:主要负责SQL查询、事务管理、恢复等物理层:主要负责写日志原创 2021-10-19 22:29:46 · 329 阅读 · 0 评论 -
MySQL裸机性能测试(2021)
一 为什么要对新申请的MySQL服务器压测新申请的机器我们是不知道性能的,系统上线之前,我们需要知道数据库的性能,从而在系统部署之后的压测中,判断系统的性能是高于还是低于数据库性能,从而确定瓶颈或者性能问题是在系统还是在数据库。比如数据库的QPS是2000,可能应用系统的QPS才500.二 数据库压测性能指标有哪些2.1 IOPS: 随机IO并发处理能力,比如200IOPS2.2 吞吐量: 磁盘每一秒中可以读写多少字节数据量, 比如redo log受吞吐量影响2.3 延迟:往磁盘写一原创 2021-10-19 22:26:07 · 539 阅读 · 0 评论 -
MySQL运维管理
一 单实例MySQL启动与关闭1.1推荐 常规方法启动与关闭数据库启动MySQL: /etc/init.d/mysqldstart查看3306端口是否启动 :ss–lnt|grep 3306ss命令:用于显示socket状态-l:显示所有本地打开的监听端口-a:显示所有的sockets-p:显示使用socket的进程-t:显示所有tcpsocket-u:显示原创 2017-11-22 09:06:50 · 823 阅读 · 0 评论 -
MySQL多实例配置
一MySQL 多实例在一台服务器上开启多个不同的服务端口,运行多个MySQL服务进程,这些服务端口通过不同的socket监听不同的服务端口来提供各自的服务共用一套MySQL安装程序,使用不同的配置文件,启动程序和数据文件;但是他们公用系统资源,比如CPU,内存,磁盘等,所以逻辑上独立,但是彼此还是有一定的影响,比如一个实例查询量很大,其他进程多少会受到一些影响。 作用:有效利用原创 2017-11-22 09:03:44 · 500 阅读 · 0 评论 -
MySQL线上备份与恢复方案
一 全量备份和增量备份的优缺点1.1 按天全备和按周全备份优缺点1.1.1 按天全备优缺点:优点:>>按天全备恢复时间短>>维护成本低 缺点:>>占用空间大>>占用资源多,比如CPU,还有锁表操作等 1.1.2 按周全备优缺点:优点:>>占用空间小>>占用资源少 缺点:>>按周全备恢复时间长,麻烦>>维护成本大 ===转载 2017-11-22 09:01:33 · 1179 阅读 · 0 评论 -
MySQL增量备份及恢复
MySQL自带备份命令->mysqldump 一 语法格式及命令参数mysqldump -u 用户名-p 数据库名> 备份的文件名字 例子:mysqldump-uroot -p123456 hadoop > /opt/data/mysql_hadoop_bak.sql备份过程:它会将将老数据删掉,然后插入或者删除才释放锁他会将将老数据删掉,然后插入或者删除才释放锁原创 2017-11-22 08:57:49 · 1802 阅读 · 0 评论 -
MySQL企业级主从复制
====================================================一 生产环境主从节点复制配置注意事项1.1 第一次如何做?>> 申请设备资源,用来做从库服务器>> 撰写文档方案和实施步骤假如你的服务器只有主库,而且已经跑了生产线上的应用了现在由于业务需要第一次做从库,此时可能需要和公司申请停机维护,即再用户访问量很小的时候,且不影转载 2017-11-22 08:56:14 · 338 阅读 · 0 评论 -
MySQL step by step 安装实战
一 MySQL 源码包安装1.1 环境准备首先:检查依赖,当然一下列举的不是所有MySQL安装都必须的。yuminstall -y autoconf automake zlib libxml libgcrypt libtoolncurses-develncurses libaio bison gcc gcc-c++ openssl-develnumactl其次:下载MySQ原创 2017-11-22 08:53:36 · 356 阅读 · 0 评论 -
Yum 安装 mysql5.7
一 下载yum源rpm安装包wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm二 安装MySQL yum源sudo yum localinstall mysql57-community-release-el7-11.noarch.rpm提示:如果要修改默认的安装版本,可以原创 2017-11-29 16:02:05 · 272 阅读 · 0 评论 -
MySQL用户管理和访问权限
一 用户管理1.1 创建新用户CREATE USER username@'主机' IDENTIFIED BY 'password';username@'localhost' 用户只能从本地主机进行连接username@'192.168.199.101' 用户可以从主机192.168.199.101进行连接username@'192.168.199.%' 用户可以从任何属于1原创 2017-08-03 11:01:16 · 481 阅读 · 0 评论 -
Linux 安装 MySQL 数据库
一 MySQL 源码包安装1.1 环境准备首先:检查依赖,当然一下列举的不是所有MySQL安装都必须的。yum install -y autoconf automake zlib libxml libgcrypt libtool ncurses-develncurses libaio bison gcc gcc-c++ openssl-develnumactl其次:下载MySQ原创 2017-08-03 15:10:07 · 2068 阅读 · 0 评论 -
mysql 多实例 ERROR 2002 ERROR 1045
一 MySQL 多实例在一台服务器上开启多个不同的服务端口,运行多个MySQL服务进程,这些服务端口通过不同的socket监听不同的服务端口来提供各自的服务共用一套MySQL安装程序,使用不同的配置文件,启动程序和数据文件;但是他们公用系统资源,比如CPU,内存,磁盘等,所以逻辑上独立,但是彼此还是有一定的影响,比如一个实例查询量很大,其他进程多少会受到一些影响。 作用:有效利原创 2016-11-12 10:39:10 · 499 阅读 · 0 评论