查阅资料时了解到的信息 整理一下,方便以后查看一、索引介绍 索引是数据库中非常非常重要的概念,它是存储引擎能够快速定位记录的秘密武器,对于提升数据库的性能、减轻数据库服务器的负担有着非常重要的作用;索引优化是对查询性能优化的最有效手段,它能够轻松地将查询的性能提高几个数量级。2. 数据结构 B+tree nnoDB 存储引擎在绝大多数情况下使用 B+ 树建立索引,这是关系型数据库中查找最为常用和有
实验分析死锁信息
原创 2016-12-20 23:54:16
3814阅读
# MySQL InnoDB源码分析 ## 1. 简介 MySQL是一个广泛使用的开源关系型数据库管理系统,其内部的存储引擎之一是InnoDB,它是一个高性能的事务安全存储引擎。本文将教会你如何进行InnoDB源码分析。 ## 2. 流程 以下是进行InnoDB源码分析的整体流程: ```mermaid flowchart TD A(开始) B(下载源码) C(配
原创 9月前
44阅读
    许久没有更新博客,上周末放假把网易大牛姜sir的著作MYSQL技术内幕InnoDB存储引擎又翻阅了一番,对当前工作的InnoDB特性有了一些新的认识,下面谈谈自己的读后感.    1. InnoDB的体系架构由一系列后台线程,内存池和文件组成,这点与其他DB有相似之处. 在内存中划分了一块区域,即缓冲池,用来临时存放用户读写的数据
 我们知道 mysql innodb 在插入更新数据时是锁行的,但这里所指的行并不是直面上说的单行,而是相对的范围的行! 引起我关注这个问题的是在做天气预报查询15天(http://tqybw.net)这个项目时发现的!其中有一张表开始用的是MyISAM类型的,由于更新很频繁,经常会造成表锁,改成innodb后,虽然表锁的机率小了很多,但还是会发生!   以下是分析测试:
原创 2012-10-16 13:08:52
556阅读
写的很不错,收藏并分享之 http://hi.baidu.com/baiduqa/blog/item/c53b8c95663afd7855fb9697.html 
转载 精选 2012-05-11 10:27:40
2103阅读
3点赞
1评论
背景MySQL默认的存储引擎是InnoDB,而引入Secondary Engine,用来实现同时支持多引擎,在同一个MySQL Server上挂多个存储引擎,在支持InnoDB的同时,还可以把数据存放在其他的存储引擎上。 全量的数据都存储在Primary Engine上,某些指定数据在Secondary Engine 上也存放了一份,然后在访问这些数据的时候,会根据系统参数和cost选择存储引擎,
mysqlinnodb和加锁分析 原文:https://liuzhengyang.github.io/2016/09/25/mysqlinnodb/ 介绍 本文主要介绍MySQLInnoDB存储引擎的一些知识。分为MySQL基础知识、InnoDB介绍和加锁分析MySQL基础知识 MySQL
转载 2017-10-18 14:55:00
109阅读
2评论
:本文在介绍AnalyticDB的基础上主要介绍MySQL版本一、背景随着企业IT和互联网系统的发展,产生了越来越多的数据。数据量的积累带来了质的飞跃,使得数据应用从业务系统的一部分演变得愈发独立。物流、交通、新零售等越来越多的行业需要通过OLAP做到精细化运营,从而调控生产规则、运营效率、企业决策等。在业务系统中,我们通常使用的是OLTP数据存储,例如MySQL,PostgreSQL等。上述关系
转载 1月前
32阅读
概述很多朋友可能会有许多关于Innodb如何使用内存的问题。我这里将简单介绍一下innodb内存结构,然后以innodb启动时的分配情况做一个解释。 1、INNODB内存结构 1.1、聚集索引与非聚集索引:聚集索引:主键,有序,存储顺序与内存一致非聚集索引:非主键,无序聚集索引在叶子节点存储的是表中的数据非聚集索引在叶子节点存储的是主键和索引列使用非聚集索引查询出数据时,拿
原创 2022-12-27 18:50:32
117阅读
原创 2021-12-16 14:03:36
387阅读
Log & Checkpoint   Innodb的事务日志是指Redo log,简称Log,保存在日志文件ib_logfile*里面。Innodb还有另外一个日志Undo log,但Undo log是存放在共享表空间里面的(ibdata*文件)。    由于Log和Checkpoint紧密相关,因此将这两部分合在一起分析。    名词解释:LSN,日志序列号,Innodb的日志序列号是一
原创 2021-04-09 11:16:45
414阅读
文件storage/innodb_plugin/srv/srv0srv.csrv_print_master_thread_info(file)sync_print(file);lock_print_info_summary(file); if (trx_start) { long t = ftell(file); if (t < 0) { *trx_start = ULINT_UND
原创 2014-06-06 17:30:39
896阅读
几天群里面说了ENUM这个类型,顺便看看这个类型的数据在数据库里面是不是按照int类型存放的。相关资料可以看看《mysql技术内幕innodb存储引擎》第一版或者第二版第二版103页compact记录格式。下面是我的测试。表结构:mysql> desc enum_t;+-------+---------------------------+------+-----+---------+---
原创 2013-07-10 20:54:35
1062阅读
案例描述      在定时脚本运行过程中,发现当备份表格的sql语句与删除该表部分数据的sql语句同时运行时,mysql会检测出死锁,并打印出日志。两个sql语句如下:      (1)insert into backup_table select * from source_table      (2)DELETE FROM source_table WHERE Id>5 AND
转载 2021-07-30 14:22:45
195阅读
现象: 导入一个insert 语句sql文件到数据库中时,老是报错:“Error Code: 1205 - Lock wait timeout exceeded; try restarting transaction”。 我们使用 innodb_trx innodb_lock_waits innod ...
转载 2021-09-12 16:31:00
1913阅读
2评论
本文为阅读极客时间MySQL实战45讲后总结锁的意义 数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构锁的分类 根据加锁的范围,MySQL里面的锁大致可以分为全局锁、表级锁和行锁三类一、全局锁全局锁就是对整个数据库实例加锁。1、怎么添加全局锁MySQL提供了一个加全局读锁的方法,命令是:Fl
转载 2023-09-20 19:12:21
89阅读
 InnoDB体系架构  这些内存块负责如下工作:维护所有进程/线程需要访问的多个内存数据结构缓存磁盘上的数据,方便快速读取,同时在对磁盘文件的数据修改之前在这里缓存。重做日志缓冲(redo log)后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据。此外将修改的数据文件刷新到磁盘文件,同时保证在数据库发生异常的情况下InnoDB能恢复到
概述 从MySQL 5.5版本开始默认使用InnoDB作为引擎,它擅长处理事务,具有自动崩溃恢复的特性,在日 常开发中使用非常广泛。下面是官方的InnoDB引擎架构图,主要分为内存结构和磁盘结构两大部分。内存结构 内存结构主要包括Buffer Pool、Change Buffer、Adaptive Hash Index和Log Buffer四大组件。1.Buffer Pool: 缓冲池,简称BP。
转载 2023-09-20 19:12:06
40阅读
  • 1
  • 2
  • 3
  • 4
  • 5