首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
MySQL技术内幕-InnoDB存储引擎
hsfxuebao
创建于2023-05-26
订阅专栏
MySQL技术内幕-InnoDB存储引擎 读书笔记
等 15 人订阅
共42篇文章
创建于2023-05-26
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
【MySQL技术内幕】5.5-Cardinality值
并不是在所有的查询条件中出现的列都需要添加索引。对于什么时候添加B+树索引,一般的经验是,在访问表中很少一部分时使用B+树索引才有意义。对于性别字段地区字段、类型字段,它们可取值的范围很小,称为低选择性。如: 按性别进行查询时,可取值的范围一般只有"M、F"。因此上述SQL语句…
【MySQL技术内幕】4.7-视图
在 MySQL数据库中,视图(view)是一个命名的虚表,它由一个SQL查询来定义,可以当做表使用。与持久表( permanent table)不同的是,视图中的数据没有实际的物理存储。 视图在数据库中发挥着重要的作用。视图的主要用途之一是被用做一个抽象装置,特别是对于一些应用…
【MySQL技术内幕】3.6-InnoDB存储引擎文件
之前介绍的文件都是 MySQL数据库本身的文件,和存储引擎无关。除了这些文件外,每个表存储引擎还有其自己独有的文件。本节将具体介绍与 InnoDB存储引擎密切相关的文件,这些文件包括重做日志文件、表空间文件。 InnoDB采用将存储的数据按表空间(tablespace)进行存放…
【MySQL技术内幕】7.8-不好的事物习惯和长事务
其实,在上述的例子中,是否加上提交命令 COMMIT并不关键。因为 InnoDB存储引擎默认为自动提交,所以在上述的存储过程中去掉 COMMIT,结果其实是完全一样的。这也是另一个容易被开发人员忽视的问题: 不论上面哪个存储过程都存在一个问题,当发生错误时,数据库会停留在一个未…
【MySQL技术内幕】7.7-分布式事物
InnoDB存储引擎提供了对XA事务的支持,并通过XA事务来支持分布式事务的实现。分布式事务指的是允许多个独立的事务资源(transactional resources)参与到一个全局的事务中。事务资源通常是关系型数据库系统,但也可以是其他类型的资源。全局事务要求在其中的所有参…
【MySQL技术内幕】7.6-事物的隔离级别
令人惊讶的是,大部分数据库系统都没有提供真正的隔离性,最初或许是因为系统实现者并没有真正理解这些问题。如今这些问题已经弄清楚了,但是数据库实现者在正确性和性能之间做了妥协。ISO和 ANIS SQL标准制定了四种事务隔离级别的标准,但是很少有数据库厂商遵循这些标准。比如 Ora…
【MySQL技术内幕】7.4-隐式提交的SQL语句和事务操作统计
DDL语句: ALTER DATABASEUPGRADE DATA DIRECTORY NAME,ALTER EVENT, ALTER PROCEDURE, ALTER TABLE, ALTER VIEW,CREATE DATABASE, CREATE EVENT, CREAT…
【MySQL技术内幕】7.3-事务控制语句
在 MySQL命令行的默认设置下,事务都是自动提交(auto commit)的,即执行SQL语句后就会马上执行 COMMIT操作。因此要显式地开启一个事务需使用命令BEGIN、 START TRANSACTION,或者执行命令 SET AUTOCOMMIT=0,禁用当前会话的自…
【MySQL技术内幕】9-性能优化
性能优化不是一项简单的工作,但也不是复杂的难事,关键在于对 InnoDB存储引擎特性的了解。如果之前各章的内容读者已经完全理解并掌握了,那就应该基本掌握了如何使 InnoDB存储引擎更好地工作。本章将从以下几个方面集中讲解 InnodB存储引擎的性能问题: 用户首先需要清楚当前…
【MySQL技术内幕】8.6-快照备份和复制
MySQL数据库本身并不支持快照功能,因此快照备份是指通过文件系统支持的快照功能对数据库进行备份。备份的前提是将所有数据库文件放在同一文件分区中,然后对该分区进行快照操作。支持快照功能的文件系统和设备包括 FreeBSD的UFS文件系统, Solaris的ZFS文件系统, GN…
【MySQL技术内幕】8.5-热备份
ibbackup是 InnoDB存储引擎官方提供的热备工具,可以同时备份 MyISAM存储引擎和 InnoDB存储引擎表。对于 InnoDB存储引擎表其备份工作原理如下: 记录备份开始时, InnoDB存储引擎重做日志文件检查点的LSN。 复制共享表空间文件以及独立表空间文件。…
【MySQL技术内幕】8.4-二进制日志备份与恢复
二进制日志非常关键,用户可以通过它完成 point-in-time的恢复工作。 MySQL数据库的replication同样需要二进制日志。在默认情况下并不启用二进制日志,要使用二进制日志首先必须启用它。如在配置文件中进行设置: 在备份二进制日志文件前,可以通过 FLUSH L…
【MySQL技术内幕】8.3-逻辑备份
mysqldump备份工具最初由Igor Romanenko编写完成,通常用来完成转存(dump)数据库的备份及不同数据库之间的移植,如从MySQL低版本数据库升级到 MySQL高版本数据库,又或者从 MySQL数据库移植到 Oracle、 Microsoft SQL Serv…
【MySQL技术内幕】8.1-备份与恢复概述和冷备
可以根据不同的类型来划分备份的方法。根据备份的方法不同可以将备份分为: Hot Backup是指数据库运行中直接备份,对正在运行的数据库操作没有任何的影响。这种方式在 MySQL官方手册中称为Online Backup(在线备份)。 Cold Backup是指备份操作是在数据库…
【MySQL技术内幕】7.2.3-purge和group commit
delete和 update操作可能并不直接删除原有的数据。例如,对上一小节所产生的表t执行如下的SQL语句: DELETE FROM t WHERE a=1;表t上列a有聚集索引,列b上有辅助索引。对于上述的 delete操作,通过前面关于undo log的介绍已经知道仅是将…
【MySQL技术内幕】7.2.2-事务的实现之undo log
重做日志记录了事务的行为,可以很好地通过其对页进行“重做”操作。但是事务有时还需要进行回滚操作,这时就需要undo。因此在对数据库进行修改时, InnoDB存储引擎不但会产生redo,还会产生一定量的undo。这样如果用户执行的事务或语句由于某种原因失败了,又或者用户用一条 R…
【MySQL技术内幕】7.1-认识事务
事务可由一条非常简单的SQL语句组成,也可以由一组复杂的SQL语句组成。 事务是访问并更新数据库中各种数据项的一个程序执行单元。在事务中的操作,要么都做修改,要么都不做,这就是事务的目的,也是事务模型区别与文件系统的重要特征之一。 理论上说,事务有着极其严格的定义,它必须同时满…
【MySQL技术内幕】6.5-锁问题、阻塞、死锁、锁升级
通过锁定机制可以实现事务的隔离性要求,使得事务可以并发地工作。锁提高了并发,但是却会带来潜在的问题。不过好在因为事务隔离性的要求,锁只会带来三种问题,如果可以防止这三种情况的发生,那将不会产生并发异常。 在理解脏读(Dirty Read)之前,需要理解脏数据的概念。但是脏数据和…
【MySQL技术内幕】6.4-锁的算法
Record Lock总是会去锁住索引记录,如果 InnoDB存储引擎表在建立的时候没有设置任何一个索引,那么这时InnoDB存储引擎会使用隐式的主键来进行锁定。 Next-Key Lock是结合了Gap lock和Record Lock的一种锁定算法,在Next-KeyLoc…
【MySQL技术内幕】6.3-InnoDB中的锁
共享锁( S Lock),允许事务读一行数据。 排他锁( X LocK),允许事务删除或更新一行数据。 如果一个事务T1已经获得了行r的共享锁,那么另外的事务T2可以立即获得行r的共享锁,因为读取并没有改变行r的数据,称这种情况为锁兼容( Lock Compatible)。 但…
下一页