购买了林晓斌老师的这个课程,此文作为学习笔记update T set c=c+2 where ID=2这样一句更新的sql语句执行过程分为以下几个步骤:根据条件查询ID=2的记录(这里和查询语句的执行步骤是一样的)执行器执行更新记录日志redo log(重做日志、物理日志) binlog(归档日志、逻辑日志)重点来了redo logredo log是InnoDB 独有的先举个栗子来描述下这两个日志
转载 2023-08-22 10:38:15
49阅读
Mysql数据库的优化技术对mysql优化是一个综合性的技术,主要包括•表的设计合理化(符合3NF)•添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引]•分表技术(水平分割、垂直分割)•读写[写: update/delete/add]分离•存储过程 [模块化编程,可以提高速度]•对mysql配置优化 [配置最大并发数my.ini, 调整缓存大小 ]•mysq
转载 2024-10-21 18:12:05
23阅读
B-Tree叶节点具有相同的深度,叶节点的指针为空所有索引元素不重复节点中的数据索引从左到右递增排序        就这样的一个结构。也就是说在一个节点上可以存储更多的元素,k-v,key就是索引字段,data就是索引字段所在的那一行的数据或是那一行数据坐在的的磁盘文件地址、指针,再去查找元素的时候一次性不是Load一
前言 整理了一些Mysql数据库相关流程图/原理图,做一下笔记,大家一起学习。 1.mysql主从复制原理mysql主从复制原理是大厂后端的高频面试题,了解mysql主从复制原理非常有必要。主从复制原理,简言之,就三步曲,如下:主数据库有个bin-log二进制文件,纪录了所有增删改Sql语句。(binlog线程)从数据库把主数据库的bin-log文件的sql语句复制过来。(io线
索引:是一种特殊的文件,它们包含着对所有记录的引用指针,索引的原理是根据索引值得到行指针,然后快速定位到数据库记录,它好比是一本书前面的目录,能加快数据库的查询速度。索引可以极大地提高数据查询速度,但是由于添加了索引,在增、删、改的时候也要按照索引的规律存放,所以无形中也会降低增、删、改的速度,因为在执行这些操作时,也要操作索引文件用来维护,所以说索引不是建的越多越好而是要建在合理的字段。普通索引
转载 2024-04-23 17:03:28
28阅读
什么是索引?索引是帮助MySQL高效获取数据的数据结构。索引的本质就是数据结构。索引的目的在于提高查询效率,可以类比图书的目录,根据目录中的页码快速找到所需的内容。一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上。索引的优点和缺点优点 1)索引可以提高数据检索的效率,降低数据库的IO成本 2)索引可以将随机IO变成顺序IO 3)索引可以帮助服务器避免排序和创
转载 2023-05-18 14:48:58
735阅读
索引原理MySQL官方对索引定义:是存储引擎用于快速查找记录的一种数据结构。需要额外开辟空间和数据维护工作。索引是物理数据页存储,在数据文件中(InnoDB,ibd文件),利用数据页(page)存储。索引可以加快检索速度,但是同时也会降低增删改操作速度,索引维护需要代价。B+Tree结构MySQL数据库索引采用的是B+Tree结构,在B-Tree结构上做了优化改造。B-Tree结构 索引值和dat
  MySQL索引原理之索引原理 - 池塘里洗澡的鸭子中介绍了索引的原理,那么根据索引的原理及其维护可以将索引分类,可参考下图:    where查询,以及order by排序。MySQL索引类型如下:      1)从索引存储结构划分:B Tree索引、Hash索引、FULLTEXT全文索引、R Tree索引、复合索引等      2)从索引键值类型划分:
更新语句涉及的模块:连接器建立连接、分析器解析语句要做什么、优化器得出怎么做,执行器调用存储器执行命令,redo log:重做日志,bin log:归档日志1、redo log[存储引擎有的日志]当业务繁忙时,执行一次更新语句 要到库表中若干个记录中查询要更新的记录,再执行更新操作,整个过程的IO成本,查找成本都很高。所以mysql这样做:当有一条记录要更新时,InnoDB先将记录写到 redo
文章目录什么是partial update?图解partial update实现原理以及其优点动手实战演练partial update基于groovy脚本执行partial updatepartial update乐观锁并发控制原理以及相关操作讲解 ElasticSearch系列——主目录什么是partial update?创建文档&替换文档,就是一样的语法PUT /index/type
文章目录1、索引概念1.1、使用场景1.2、索引代价2、索引分类2.1、数据结构2.2、物理存储回表查询 & 覆盖索引2.3、字段(列)属性2.3.1、主键索引主键的选择2.3.2、唯一索引2.3.2、普通索引2.3.3、前缀索引2.4、字段(列)个数2.4.1、组合索引* 最左匹配* 索引下推* 索引的区分度3、索引实现3.1、数据页3.2、innoDB B+ 树3.3、聚集索引3.4
转载 2023-09-23 09:51:07
188阅读
摘要本文介绍MySQL的InnoDB索引相对底层原理相关知识,涉及到B+Tree索引和Hash索引,但本文主要介绍B+Tree索引,其中包括聚簇索引和非聚簇索引,InnoDB数据页结构详解,B+Tree索引的使用以及优化,同时还有B+Tree索引的查询流程简介。此文是我对学习InnoDB索引的一个总结,内容主要参考MySQL技术内幕 InnoDB存储引擎一书,及网上一些博客(参考文献会给出)一、先
MySQL索引背后的数据结构及算法原理作者 张洋 | 发布于 2011-10-18 摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道
流程图这是在网上找到的一张流程图,写的比较好,大家可以先看图,然后看详细阅读下面的各个步骤。执行流程:1.连接验证及解析客户端与MySQL Server建立连接,发送语句给MySQL Server,接收到后会针对这条语句创建一个解析树,然后进行优化,(解析器知道语句是要执行什么,会评估使用各种索引的代价,然后去使用索引,以及调节表的连接顺序)然后调用innodb引擎的接口来执行语句。2.写undo
转载 2023-06-21 20:22:20
368阅读
与查询流程不同的是,更新流程还涉及两个重要的日志模块,redo log(重做日志)和 binlog(归档日志)。重要的日志模块:redo log在 MySQL 里如果每一次的更新操作都需要写进磁盘,然后磁盘也要找到对应的那条记录,然后再更新,整个过程 IO 成本、查找成本都很高。为了解决这个问题,MySQL 的设计者就用 WAL 技术,WAL 的全称是 Write-Ahead Logging,它的
转载 2023-09-04 12:38:26
134阅读
总结共享锁大家可能很好理解,就是多个事务只能读数据不能改数据;排他锁大家的理解可能就有些差别,我当初就犯了一个错误,以为排他锁锁住一行数据后,其他事务就不能读取和修改该行数据,其实不是这样的,排他锁指的是一个事务在一行数据加上排他锁后,其他事务不能再在其上加其他的锁。mysql InnoDB引擎默认的修改语句insert,update,delete都会自动给涉及到的数据加上排他锁,select语句
在工作中听到最多的一句话,sql查询太慢怎么办?加个索引吧! 今天来探索一下mysql的索引原理。1.索引是什么?可以毫不夸张的说,系统中sql的快慢,是能直接决定你系统的快慢的。但是sql的快慢就看索引的好坏了。 索引是数据库系统中的一个排序的数据结构,以助于快速查询和更新数据表中的数据。 索引的作用是做数据的快速检索。 列如字典中的key值,一本书的目录,一个饭店的菜单等等。2.索引划分PRI
通过上一篇文章,对MySQL的内部结构以及一条查询语句是如何执行的有了一个大概的认识。下面对MySQL更新以及两个日志文件进行总结。如图:以上是一张MySQL更新的执行示意图。这张图较好地解释了一条sql是如何执行的。下面先对图中比较陌生的元素redo log 和binlog进行介绍。redo log:    翻译过来就是重做日志,是Innodb存储引擎特
HMR(Hot Module Replacement)热更新使得应用在运行状态下,不重载刷新就能更新、增加、移除模块的机制EventSource 服务端与客户端通信 首先通过查看代码 webpack-hot-middleware/client 发现通信是用 window.EventSource 实现 EventSource 是 HTML5 中 Server-sent Events 规范的一种技术
更新:是app常用的更新方式,只需下载安装更新部分的代码工作原理:动态下开发代码,使开发者在不发布新版本的情况下修复bug和发布功能,绕开苹果审核机制,避免长时间的审核以及多次被拒绝造成的成本。优点:(1)速度快,可以绕过苹果方面的审核,更新数度快;           (2)更新资源包
  • 1
  • 2
  • 3
  • 4
  • 5