深入理解MySQL系列之锁

按锁思想分类 悲观锁 优点:适合在写多读少的并发环境中使用,虽然无法维持非常高的性能,但是在乐观锁无法提更好的性能前提下,可以做到数据的安全性 缺点:加锁会增加系统开销,虽然能保证数据的安全,但数据处理吞吐量低,不适合在读书写少的场合下使用 乐观锁 优点:在读多写少的并发场景下,可以避免数据库加锁的 ... »

深入理解MySQL系列之redo log、undo log和binlog

事务的实现 redo log保证事务的持久性,undo log用来帮助事务回滚及MVCC的功能。 InnoDB存储引擎体系结构 redo log Write Ahead Log策略 事务提交时,先写重做日志再修改页;当由于发生宕机而导致数据丢失时,就可以通过重做日志来完成数据的恢复。 InnoDB首 ... »

深入理解MySQL系列之索引

索引 查找一条数据的过程 先看下InnoDB的逻辑存储结构: 表空间:可以看做是InnoDB存储引擎逻辑结构的最高层,所有的数据都存放在表空间中。默认有个共享表空间ibdata1。如果启用innodb_file_per_table参数,需要注意每张表的表空间内存放的只是数据、索引和插入缓冲Bitma ... »

Mysql架构与内部模块-第三章

前言 接上文,本篇文章专门简述Mysql存储引擎,内容繁多,如果你只需知道每种存储引擎的适用场景,可以直接查看本文最后列出的适用场景部分。 正文: Mysql存储引擎作为本系列文章中相对重要的一环,也是相关领域面试官问的比较多的一部分,能够掌握不同的存储引擎的区别,可以让你在工作中有更加突出的表现。 ... »

Mysql架构与内部模块-第二章

接上文,上文简述到了Mysql中的查询缓存和解析器,今日我们继续。 先来看一段SQL:SELECT * FROM `jianghuadong`; 先假设我们数据库中并没有一张名为jianghuadong的表,那么这句语句的执行结果是? 首先,这句SQL肯定格式上是没有任何问题的,问题在于查询的表不存 ... »

mysql索引数据结构

索引是帮助mysql高效获取数据的排好序的数据结构 B+Tree(B-Tree) 非叶子节点不存储data,只存储索引(冗余),可以放更多的索引 叶子节点包含所有索引字段 叶子节点用指针连接(双向)-便于范围查找,提高取件访问的性能 MYISAM索引文件和数据文件是分离的(非聚集),一个表包含MYD ... »

Mysql(六):数据备份、pymysql模块

一 IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具 下载链接:https://pan.baidu.com/s/1bpo5mqj 掌握: #1. 测试+链接数据库 #2. 新建库 #3. 新建表,新增字段+类型+约束 #4. 设计表:外键 #5. 新建查询 ... »