![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 87
右耳听风
芝兰生于深谷,不以无人而不芳
君子修身养德,不以穷困而改志
展开
-
mysql索引原理2
文章目录索引索引类型索引模型推演二分法查找二叉查找树平衡二叉树(AVL Tree)(左旋、右旋)多路平衡查找树(B Tree)(分裂、合并)B+树 (加强版多路平衡查找树)为什么不用红黑树索引方式:真的只有B+Tree吗InnoDB聚集索引聚集索引(聚簇索引)索引使用规则列的离散度联合索引最左匹配什么时候用不到索引索引数据是以文件的形式存放在磁盘上,每一行数据都有它的磁盘地址。如果没有索引的话,我们从500万条数据检索一条数据,只能依次遍历这张表的全部数据,直到找到这条数据。有了索引以后,只需要去索引原创 2022-03-03 09:21:24 · 1552 阅读 · 1 评论 -
mysql事务与锁3
文章目录事务原子性隔离性持久性一致性事务并发带来的问题(隔离性)事务mysql只有InnoDB支持事务,这也是它默认存储引擎的原因。事务的ACID十大特性。原子性简单说一条或多条sql语句,要么全部成功,要么全部失败。原子性,在InnoDB中通过undo log来实现的。一旦中途发生异常,可以用undo log实现回滚。隔离性数据库层面有4种隔离级别来保证。持久性持久性,指的是事务一旦提交成功,就会持久化到磁盘。不会因为宕机、重启而丢数据。持久性是通过redo log和双写缓冲来保证的原创 2022-03-03 08:42:03 · 975 阅读 · 0 评论 -
mysql架构1
文章目录存储引擎存储引擎比较执行引擎Mysql体系结构连接层服务层存储引擎一条更新的SQL是如何执行的缓冲池Buffer PoolRedo logredo log 有什么特点undo logInnoDB总体架构系统表空间system tablespace独占表空间file-per-table tablespaces通用表空间 general tablespaces临时表空间undo log tablespacebinlog存储引擎5.5以前默认存储引擎是myisam,5.5以后默认的存储引擎是InnoD原创 2022-03-03 06:11:08 · 762 阅读 · 0 评论 -
分库分表策略和id生成策略
前言对于一家互联网公司,线上系统的分库分表大多是DBA参与完成。对于开发关注的问题莫过于主键id的生成策略,以及事务问题处理0.1 主键id的生成策略(全局主键避重问题)0.1.1 UUIDUUID标准形式包含32个16进制数字,分为5段,形式为8-4-4-4-12的36个字符,例如:550e8400-e29b-41d4-a716-446655440000UUID由以下几部分的组合:(...原创 2019-07-12 01:54:49 · 753 阅读 · 0 评论 -
MySQL分库分表原理
MySQL分库分表原理前言数据库为什么要分库分表影响数据库性能的三个要素数据量磁盘数据库连接1、分库分表的原理和实现1.1 什么是分区、分表、分库分区分表分库1.2 什么时候考虑使用分区?分区解决的问题分区的实现方式(简单),例如:1.3 分库分表概述1.4 适用场景1.5 业务分库(又叫mysql垂直拆分)1.6 业务分表(又叫水平拆分)1.6.1 业务分表带来的问题:1.6.2 路由问题1.6...原创 2019-07-12 00:31:48 · 1814 阅读 · 0 评论 -
MySql索引原理及策略
MySql索引1.索引定义1.1索引的优点从使用角度来说从底层原理来说1.2索引的缺点1.3索引选取的数据类型1.4索引使用场景什么场景不适合创建索引什么样的字段适合创建索引2.索引的类型及实现原理(从数据结构角度的来划分)2.1哈希索引2.1.1哈希索引特点2.1.2哈希索引适用场景2.2全文索引:注意:2.3 BTree索引2.4 B+Tree索引(InnoDB和MyISAM默认使用B+Tre...转载 2019-07-01 01:47:35 · 1038 阅读 · 2 评论 -
MySQL数据库中的日志
MySQL数据库中的日志MySQL日志:事务日志(mysql的innodb存储引擎层日志)重做日志(事务日志之redo log)1、redo log的作用2、redo log的内容3、redo log生命周期:redo log什么时候产生4、redo log生命周期:redo log什么时候释放5、redo log对应的物理文件6、redo log是什么时候写盘的?回滚日志(事务日志之undo l...原创 2019-06-27 01:05:25 · 647 阅读 · 0 评论 -
MySQL中InnoDB的多版本并发控制(MVCC)
@[TOC]MySQL中InnoDB的多版本并发控制(MVCC)阿里数据库内核2017/12月报中对MVCC的解释轻松理解MVCC简介MVCC(Multi-Version Concurrency Control)即多版本并发控制。MySQL的大多数事务型(如InnoDB,Falcon等)存储引擎实现的都不是简单的行级锁。基于提升并发性能的考虑,他们一般都同时实现了MVCC。当前不仅仅是...转载 2019-06-23 04:10:11 · 189 阅读 · 0 评论 -
MySQL InnoDB存储引擎事务的ACID特性
InnoDB存储引擎事务的ACID特性1、前言ACID问题:2、Redo log对比binlogredo log blockcrash recovery3、Undo log基本文件结构Undo log的格式purge4、多版本控制MVCCInnoDB存储引擎的行结构事务链表ReadViewRC和RR隔离级别ReadView的实现方式5、总结为什么InnoDB能够保证原子性A?用的什么方式?为什么I...转载 2019-06-23 00:29:30 · 150 阅读 · 0 评论 -
mysql的事务
mysql的事务机制及其实现0、事务1、1.12、3、0、事务事务是关系型数据库区别于一切文件系统的重要特性,例如:文件系统的两个文件,修改其中一个文件的时候系统崩了,那么事后,很难再保证两个文件的一致了。通常数据库崩溃以后,还可以恢复数据,保证数据的一致性。数据库事务,是一组具有原子性的SQL语句,组内的sql语句要么全部成功,要么全部失败。1、1.12、3、...原创 2019-06-22 23:50:57 · 331 阅读 · 0 评论 -
mysql数据库的锁机制
mysql数据库中的锁机制转载 2019-06-22 23:32:04 · 226 阅读 · 0 评论