
MySQL
文章平均质量分 92
mysql学习笔记
neei
不积跬步无以至千里,不积小流无以成江河
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL -- 读写分离
读写分离1,读写分离方案1.1 客户端直连1.2 proxy代理1.3 直连 vs 代理2,读写分离几个问题2.1 过期读2.2 解决方案对比1,读写分离方案分摊主库的压力1.1 客户端直连由客户端(client)选择后端数据库进行查询,即客户端主动做负载均衡,一般把数据库连接信息放客户端连接层。1.2 proxy代理MySQL 和客户端之间有一个代理层 proxy,客户端只连接 proxy, 由 proxy 根据请求和上下文决定请求的分发路由1.3 直连 vs 代理方案优原创 2020-11-21 19:33:37 · 212 阅读 · 0 评论 -
MySQL -- 主备复制
备库 B 通过 change master 命令,设置主库 A 的 IP、端口、用户名、密码,以及从哪个位置开始请求 binlog,这个位置包含文件名和日志偏移量 备库 B 执行 start slave 命令,备库会启动两个线程 io_thread 、sql_thread , io_thread 负责与主库建立连接。 主库 A 校验完用户名、密码后,开始按照备库 B 传过来的位置,从本地读取 binlog,发给 B 备库 B 拿到 binlog 后,写到本地文件,即中继日志(relay log)。原创 2020-11-19 21:05:59 · 841 阅读 · 1 评论 -
MySQL -- 排序(order by)
排序(Order By)1,全字段排序rowid 排序3,临时表排序3.1 内存临时表3.2 磁盘临时表1,全字段排序例:select city,name,age from t where city='杭州' order by name limit 1000 ;在 city 字段上创建索引之后,我们用 explain 命令来看看这个语句的执行情况“Using filesort”表示的就是需要排序,MySQL 会给每个线程分配一块内存用于排序,称为 sort_buffer。语句执行流程初始原创 2020-11-14 21:48:22 · 465 阅读 · 0 评论 -
MySQL -- 数据库各种锁
数据库各种锁1,数据库锁1.1 Two-Phase Locking(2PL)2,加锁过程分析2.1 一条简单SQL的加锁实现分析2.2 一条复杂的sql语句3,死锁3.1 两个Session的两条SQL死锁3.2 两个Session的一条SQL死锁1,数据库锁表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行原创 2020-11-09 23:17:40 · 540 阅读 · 0 评论 -
MySQL -- 索引作用过程
索引作用过程1,索引1.1 索引数据结构1.2 各种数据结构运用到索引上的优缺点1.3 MySQL存储引擎(引擎基于表作用的)2,索引优化2.1 联合索引2.2 最左前缀原则2.3 未完待续。。。1,索引索引是帮助Mysql高效获取数据的排好序的数据结构1.1 索引数据结构二叉树 : 大的在又节点,小的在左节点红黑树(二叉平衡树) :hash表 : 等式查询效率高,范围查询效率低B-Tree : a. 节点可以存放多个索引,具有相同的深度,叶子节点之间没有指针 b. 所有索原创 2020-11-09 22:39:07 · 555 阅读 · 0 评论 -
MySQL -- 多版本并发控制MVCC
多版本并发控制MVCC1,MVCC实现1.1 读操作1,MVCC实现解决:MySQL读不加锁,读写不冲突1.1 读操作快照读 (snapshot read):快照读,读取的是记录的可见版本 (有可能是历史版本),不用加锁。 简单的select操作,属于快照读,不加锁。(当然,也有例外,下面会分析)当前读 (current read)。当前读,读取的是记录的最新版本,并且,当前读返回的记录,都会加上锁,保证其他事务不会再并发修改这条记录。 特殊的读操作(for update等),插入/更新/删除原创 2020-11-09 21:58:34 · 261 阅读 · 0 评论 -
MySQL -- SQL事务
SQL事务1,事务的ACID1.1 事务的创建1.2 常见数据库读错误2,事务的隔离级别3,事务隔离实现4,长事务1,事务的ACID原子性(Atomicity):是指事务是一个不可分割的单元,事务中的操作要么全发生,要么都不发生;一致性(Consistency):事务必须使数据库从一个一致性状态变换到另一个一致性状态;隔离性(Isolation):是指一个事务的执行不能被其他事务干扰,即一个事务的内部操作及使用的数据对并发的其他操作的事务是隔离的,并发执行的各个事务之间不能相互干扰;持久性(Du原创 2020-11-09 21:59:44 · 262 阅读 · 0 评论 -
MySQL -- SQL日志
SQL日志1,binlog1.1 特点2,redo log2.1 特点2.2 脏数据刷盘(redo log日志擦除)2.3 脏日志刷盘2.4 缓冲池(buffer pool)3,undo log3.1 特点3.2 作用1,binlog1.1 特点二进制日志binlog(服务层的日志),又称归档日志。binlog是逻辑日志,记录的是SQL语句的原始逻辑,比如”给ID=2这一行的a字段加1 ",日志内容是二进制的,根据日记格式参数的不同,可能基于SQL语句、基于数据本身或者二者的混合binlog主要记原创 2020-11-09 21:19:38 · 1394 阅读 · 0 评论 -
MySQL -- SQL语句的执行过程
数据库一,深入MySQL1,数据库执行流程2,mysql日志系统3,事务隔离一,深入MySQL1,数据库执行流程mysql基本逻辑架构图连接器连接器负责跟客户端建立连接、获取权限、维持和管理连接。查询缓存MySQL拿到一个查询请求后,先找缓存,执行过的语句可能会以key-value对的形式缓存在内存中。key是查询的语句,value是查询的结果。下次查询缓存中找到key,那么这个v...原创 2019-10-26 14:11:04 · 303 阅读 · 0 评论 -
MySQL -- 数据库引擎
数据库引擎一,数据库引擎一,数据库引擎原创 2019-10-25 22:24:50 · 235 阅读 · 0 评论 -
MySQL -- MySQL基础
常见函数和查询原创 2019-10-26 01:39:38 · 827 阅读 · 0 评论