MySQL提升笔记(4)InnoDB存储结构
这一节本来计划开始索引的学习,但是在InnoDB存储引擎的索引里,存在一些数据存储结构的概念,这一节先了解一下InnodDB的逻辑存储结构,为索引的学习打好基础。 从InnoDB存储引擎的存储结构看,所有数据都被逻辑地放在一个空间中,称之为表空间(tablespace)、区(extent)、页(pa ... »
这一节本来计划开始索引的学习,但是在InnoDB存储引擎的索引里,存在一些数据存储结构的概念,这一节先了解一下InnodDB的逻辑存储结构,为索引的学习打好基础。 从InnoDB存储引擎的存储结构看,所有数据都被逻辑地放在一个空间中,称之为表空间(tablespace)、区(extent)、页(pa ... »
这一周线上碰到一个诡异的BUG。 线上有个定时任务,这个任务需要查询一个表几天范围内的一些数据做一些处理,每隔十分钟执行一次,直至成功。 通过日志发现,从凌晨5:26分开始到5:56任务执行了三次,三次都因为SQL查询超时而执行失败,而诡异的是,任务到凌晨6:00多就执行成功了。 每天都是凌晨五点多 ... »
在MySQL数据库和InnoDB存储引擎中,有很多种文件,如:参数文件、日志文件、socket文件、pid文件、MySQL表结构文件、存储引擎文件。 本节重点关注日志文件,MySQL的复制、事务等重要功能都和日志文件相关。日志文件主要包括错误日志文件、二进制日志文件、慢查询日志文件、查询日志文件、重 ... »
在前面我们了解了server层调用存储引擎层接口来完成sql的执行,使用存储引擎的好处是:每个存储引擎都有各自的特点,能够根据具体的应用建立不同存储引擎表。 需要注意的是,存储引擎是基于表的,而不是数据库。 MySQL 5.7 支持的存储引擎有 InnoDB、MyISAM、Memory、Merge、 ... »
前言 前几篇记录了如何查看SQL执行计划、数据库事务相关的知识点 除了这两个,数据库还有两个是非常重要的,必须要考的 就是存储引擎和索引 今天先记录以下InnoDB存储引擎相关的知识点 MySQL存储引擎 在MySQL存储引擎中,最为广知的存储引擎是InnoDB和MyISAM存储引擎 而这两个存储引 ... »
电脑配置:系统64位win10,MySQL8.0.16 第一坑,没有用管理员身份 第一次登录,打开cmd,执行net start mysql **报错:**发生系统错误5 **错误原因:**没有用管理员身份运行cmd 第二坑,MySQL 服务无法启动 用管理员身份运行cmd,执行net start ... »
一、清除原从数据库数据及主从关系 1.1、关闭主从数据库原有的主从关系 从库停止salve mysql> stop salve; 查看主从关系连接状态,确保IO线程和SQL线程停止运行 mysql> show slave statusG; ...... Slave_IO_Running: NO S ... »
可见性分析 CREATE TABLE `t` ( `id` int(11) NOT NULL, `k` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB; insert into t(id, k) values(1,1),(2,2); ... »
前言 都知道事务的可重复读级别实现原理是使用MVCC实现的,那么你对MVCC的底层实现原理知道多少呢?面试高频点,你值得拥有。 一、MVCC到底是什么? MVCC即多版本控制器,其特点就是在同一时间,不同事务可以读取到不同版本的数据,从而去解决脏读和不可重复读的问题。 在这里插入图片描述 这样的解释 ... »
作为一个关系型数据库,MySQL内建地提供数据复制机制,这使得在使用时,可以基于其复制机制实现高可用架构等高级特性,从而使得MySQL无需借助额外的插件或其他工具就具备适用于生产环境。这是MySQL得到大面积实际应用的条件之一。 基于MySQL的复制机制,不仅可以实现数据库的高可用,还能实现如:性能 ... »
相信很多人都听过删库跑路这个词,用搜索引擎检索删库跑路,可以看到很多程序员删库跑路的讨论和新闻。 但是,严格来讲,大部分程序员想删库跑路也做不到。为什么呢?因为没有数据库的删除权限。——真正能删库跑路的是运维,再准确点DBA。 那么平时业务中的删除是怎么做的呢?答案是逻辑删除。 逻辑删除:又名软删除 ... »
1 MySQL 1.1 安装 在root用户权限下 # 创建mysql用户和用户组,同时禁止登陆 shell> groupadd mysql shell> useradd -r -g mysql -s /bin/false mysql # tar解压mysql压缩包,同时把他移到你向安装的位置 sh ... »
全局锁 全局锁就是对整个数据库实例加锁。MySQL 提供了一个加全局读锁的方法FTWRL Flush tables with read lock 全局锁的典型使用场景是,做全库逻辑备份,也就是把整库每个表都 select 出来存成文本。在备份过程中整个库完全处于只读状态,存在以下问题: 如果你在主库 ... »
记录一次在工作中遇到sql优化实例: mysql优化一直是工作中一个非常普遍的问题,我们工作中会不可避免的遇到需要根据业务去写一些比较复杂的sql语句,或者更多的呢,是我们在新接手一个项目后,尤其是一些特别老的业务系统,经常会遇到一些查询非常慢的问题。这时候就需要我们去想办法来改善我们的查询方式,来 ... »
一、概述 在 MySQL 中,我们可以使用慢查询日志或者 show processlist 命令等方式定位到执行耗时较长的 SQL 语句,在这之后我们可以通过 EXPLAIN或者 DESC 命令获取 MySQL 如何执行 SELECT 语句 的信息,包括在 SELECT 语句执行过程中表如何连接和连 ... »
索引模型 哈希表 适用于只有等值查询的场景,Memory引擎默认索引 InnoDB支持自适应哈希索引,不可干预,由引擎自行决定是否创建 有序数组:在等值查询和范围查询场景中的性能都非常优秀,但插入和删除数据需要进行数据移动,成本太高。因此,只适用于静态存储引擎 二叉平衡树:每个节点的左儿子小于父节点 ... »
原文地址:https://blog.jcole.us/2013/01/02/on-learning-innodb-a-journey-to-the-core/,本系列翻译会在其基础上扩展一些 MySQL 源码相关的一些注释和思路解读,以及配图 我已经使用 InnoDB 大约十年了,我已经足够了解它并 ... »
前言 上篇说到数据库事务中的特性ACID和4个隔离级别,今儿就来看一下事务中的锁。 MySQL中的锁 锁是MySQL在服务器层和存储引擎层的并发控制,锁可以保证数据并发访问的一致性、有效性; 锁冲突也是影响数据库并发访问性能的一个重要因素 MySQL有三种级别的锁:「表级锁、行级锁、页级锁」 表级锁 ... »
对于用Python制作一个简易版的淘宝客服机器人,大概思路是:首先从数据库中用sql语句获取相关数据信息并将其封装成函数,然后定义机器问答的主体函数,对于问题的识别可以利用正则表达式来进行分析,结合现实情况选择答案,最后在执行时可以设置循环语句,并且在每次回答间隔1s方便进一步做并发处理作为未来优化 ... »
mybatis&plus系列 Mysql的JSON字段的读取和转换 一. 背景 在平常的开发中,我们可能会有这样的需求: 业务数据在存储的时候,并不是以mysql中的varchar丶int等格式来存储的,而是使用json格式. 这样做的好处是当数据结构有变化或者需求变化时,我们不用再添加字段,方便扩 ... »