• 文库
  • 字符
  • 转换
  • 加密
  • 网络
  • 更多
    图表
    数学
    坐标
    图片
    文件
  • 文库
    字符
    转换
    加密
    网络
    更多
    图表
    数学
    坐标
    图片
    文件
logo 在线工具大全
所有 中文 英语 最新 热度
67 条查询结果

大家都知道 MySQL 的数据都是保存在磁盘的,那具体是保存在哪个文件呢?MySQL 存储的行为是由存储引擎实现的,MySQL 支持多种存储引擎,不同的存储引擎保存的文件自然也不同。InnoDB 是我们常用的存储引擎,也是 MySQL 默认的存储引擎。本文主要以 InnoDB 存储引擎展开讨论。

200 技术 lddgo 分享于 2023-02-07

大家都知道 MySQL 的数据都是保存在磁盘的,那具体是保存在哪个文件呢?MySQL 存储的行为是由存储引擎实现的,MySQL 支持多种存储引擎,不同的存储引擎保存的文件自然也不同。InnoDB 是我们常用的存储引擎,也是 MySQL 默认的存储引擎。本文主要以 InnoDB 存储引擎展开讨论。

198 技术 lddgo 分享于 2023-02-06

MVCC (Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC是通过数据行的多个版本管理实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性读操作有了保证。换言之,就是为了查询一些正在被另一个事务更新的行,并且可以看到它们被更新之前的值,这样在做查询的时候就不用等待另一个事务释放锁。 MVCC没有正式的标准,在不同的DBMS中MVCC的实现方式可能是不同的,也不是普遍使用的。本文讲解InnoDB中MVCC的实现机制(MySQL其它的存储引擎并不支持它)。

49 技术 lddgo 分享于 2023-01-31

MySQL在互联网行业应用广泛,性能强、可靠性高,云厂商还提供了许多扩展工具,生态相对其他数据库而言比较成熟。 归因于成熟的基建,业务研发人员更需关心的是数据库设计方案、操作数据时的性能和一致性问题。如果我们在使用事务时,不知道数据存储方式和事务实现原理,往往会在一个事务的多次读写过程中产生bug,即数据的变更不符合预期。因此当了解了MySQL事务的底层实现原理,我们就能知道如何编写代码以达到预期,就能知道数据库引擎设计的精妙之处。

123 技术 lddgo 分享于 2022-12-22

change buffer(在 MySQL 5.6 之前叫 insert buffer,简称 ibuf )是 InnoDB 5.5 引入的一种优化策略,若二级索引页不在 buffer pool 中,则将针对二级索引页的操作暂时缓存起来,等到该页从磁盘读到 buffer pool 中时再批量的(batch)apply 这些操作,从而达到减少磁盘 I/O 的目的。具体一点就是: 事务 1 执行写操作(e.g update),但针对的二级索引页 P1 并不在 buffer pool 中 于是 client 1 将这个操作缓存到 change buffer 里,即添加一个 entry(ibuf insert) 事务 2 需要读操作,将 P1 读到 buffer pool 中 将 change buffer 里相关的缓存的操作全部合并(merge)至 P1(ibuf merge) 将 P1 返回给用户线程

68 技术 lddgo 分享于 2022-11-25

大家好,我是田哥 今天来和大家分享MySQL的三个日志文件,可以说 MySQL 的多数特性都是围绕日志文件实现,而其中最重要的有以下三种: redo 日志 undo 日志 binlog 日志 比如更新语句的流程会涉及到 undo log(回滚日志)、redo log(重做日志) 、binlog (归档日志)这三种日志: undo log(回滚日志) :是 Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和 MVCC。 redo log(重做日志) :是 Innodb 存储引擎层生成的日志,实现了事务中的持久性,主要用于掉电等故障恢复; binlog (归档日志) :是 Server 层生成的日志,主要用于数据备份和主从复制;

78 技术 lddgo 分享于 2022-11-22

主库的职能是负责写,从库主要是负责读,可以建立读库集群,通过读写职能在数据源上的隔离达到减少读写冲突、释压数据库负载 、保护数据库的目的 。在实际的使用中,凡是涉及到写的部分直接切换到主库,读的部分直接切换到读库,这就是典型的读写分离技术。 本文将聚焦读写分离,探讨如何实现它。

80 技术 lddgo 分享于 2022-11-11

电商业务场景,随着平台订单规模的日益增长,订单现有的存储已经没办法支撑后面业务的发展。在得物五彩石项目的时候就对订单进行了分库分表的拆分,为了解决分库分表后卖家维度的查询问题,单独创建了一个卖家维度的订单库。 目前订单分为买家和卖家两个库,卖家库的数据是通过监听买家库binlog异构出来的一个库。现在订单主要有两张表,分别是订单的主表和子表。 在异构的逻辑中,我们会对这两张表的binlog消息进行处理,异构成我们的卖家订单表。在监听到插入的消息时,只会处理子表的插入消息,其余需要补充的主订单表数据直接查询主表。

79 技术 lddgo 分享于 2022-11-01

最近业务系统生产环境的IDB在执行事务的过程中出现了ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction 异常。通过相关资料的查询和了解,发现出现这个问题的原因是产生了悬挂事务。整个排查的过程也比较困难,因此和大家分享下排查问题的经过。如果文中有错漏的地方,欢迎大家指正。

109 技术 lddgo 分享于 2022-09-19

最近使用sysbench测试MySQL,由于测试时间较长,写了一个脚本按prepare->run->cleanup的顺序在后台跑着。跑完后察看日志发现一个问题,MySQL服务的错误日志中出现多条类似以下信息的报错:

258 技术 lddgo 分享于 2022-09-07