三、幻读 InnoDB 的默认事务隔离级别是可重复读,可重复读的条件下,一个事务在前后两次查询同一个范围的时候,后一次查询看到了前一次查询没看到的行,称之为幻读。 幻读仅在当前读下才会出现,且仅专指“新插入的行”。 注 :在可重复读的隔离级别下,普通的查询是快照读,不会看到别的事务插入的数据。当前读,读取的是数据的最新版本,需要获取到对应记录的锁。…
一、orderby 运行机制 1.1 全字段排序 orderby 的执行流程: 1、初始化 sort_buffer,确定需要放入的字段(需要查询的字段)。 2、获取字段的值,放入 sort_buffer 中。 3、对 sort_buffer 中的数据按照指定字段做排序。 4、将排序后的结果返回给客户端。 orderby 排序的位置: 排序这个动作可…
MySQL 为什么偶尔执行速度变慢 “脏页”:当内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存页为“脏页”。 “干净页”:内存数据写入到磁盘后,内存和磁盘上的数据页的内容就一致了,称为“干净页”。 MySQL 执行偶尔变慢一会可能就是在刷脏页(flush)。 5.1 什么情况会引发数据库的 flush 过程呢? InnoDB 的 redo …
1. 一、系统级内核参数配置 # 禁止ip转发功能# 0表示不开启,为1表示开启,建议不开始。如果将Linux系统作为路由或者VPN服务就必须要开启IP转发功能。net.ipv4.ip_forward = 0 #开启对数据包源地址的校验#开启rp_filter参数的作用#1. 减少DDoS攻击#校验数据包的反向路径,如果反向路径不合适,则…
linux系统中: 文件系统三个方面: Disk相关参数调优(DISK就是磁盘相关配置参数) 文件系统本身参数调优 文件系统挂载(mount)参数调优 DISK参数配置 yum install sdparm(安装sdparm工具) sdparm -s WCE=1,RCD=0 -S /dev/sdb(这个命令的意思是开启写缓存,关闭读缓存,) 注意点…
一、Oracle目录结构详解: oracle体系结构 数据库实例:用来访问和使用数据库的一块进程,只存在于内存中,和java中new出来的实例对象差不多,一个数据库可以有N个实例。 表空间:通过表空间存储物理表,一个数据库实例存储N个表空间,一个表空间存储N个表,可以有N个数据文件; 数据文件:数据文件是数据库的物理存储单位,数据库的数据是存储在表…
入职广州某上市公司从事生产环境的的相关运维工作,因为刚好过了半年,各大公司正在准备Q3的财报或者半年的总结和财报,我所在的这家公司也不例外。 所以入职后,我也参与了部门上半年的工作总结会和下半年工作规划会,整个部门涉及运维、技术支持、测试和开发团队,此外还需要联调运营、商务、客代和客成去做一些项目上的工作。 上半年的工作总结中,开发团队侃侃而谈,主…
三、索引 索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。 3.1 InnoDB的索引模型 在 InnoDB 中,表都是根据主键顺序以索引的形式存放的,这种存储方式的表称为索引组织表。 InnoDB 使用了 B+ 树索引模型,所以数据都是存储在 B+ 树的。 每一个索引在 InnoDB 里面对应一棵 B+ 树。 B+ 树能够很好地配合磁…
2.1 隔离性与隔离级别 SQL 标准的事务隔离级别: 读未提交(read uncommitted):一个事务还没提交时,它做的变更就能被别的事务看到。 读提交(read committed):一个事务提交之后,它做的变更才会被其他事务看到。 可重复读(repeatable read):一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据…
1.1 MySQL 逻辑架构图 MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。 存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyI…