天云mysql课程笔记_mysql的7天训练营笔记

第4天:

今天的内容比较干货,但是难吸收。作业都没有,说明实践很难。

笔记如下:

mysql8.0的select 语法结构:查询表达式、表对象、where过滤条件、order by / group by 、limit offset、window、having condition、Lock Clause、Union

子查询出现在:表对象中-叫Derived table, 查询表达式-Scalar Operand,where/having-Comparison

关联/非关联子查询

多表Join: inner join * outer join +输出至少一张表的全部记录 Left/right join * semi join * anti join

查询的执行策略

表访问方式:全表扫描、索引-、索引Range、索引ref查询=

order by 满足索引上最左匹配; filesort排序 (group by 临时表分组)

Derived table. Merge-简单的可以;物化-临时表

Scalar Operand. 物化;Semi join-关联子查询;嵌套执行-效率最差

多表join: Nest Loop Join * Block NL * Block Key Access Join * Hash join

执行计划:explain query statement

实战。这里多看多理解吧。有挺多例子SQL的explain输出信息的讲解,完全覆盖了上面的理论点。

Optimize Trace。得到Explain产生的全过程。一条SQL从得到到执行的多个阶段的全过程。

第六天

概念:1首先都是MySql数据库服务器。但角色不同,我们称呼就不同了,

有A: 源/主库

有B:  副本/从/备/只读库

默认时异步,A发送事务的更新到B,A上事务的提交不等待B的任何反馈

半同步复制:弹性同步复制,广泛使用(但异地灾备还是得异步)。大多数是同步状态(A发送事务的更新到B,A上事务的提交需要等待B接受到这个事务的反馈),网络闪断和大事务情况下转换为异步复制,B追上A后,转换为同步复制

binary log = binlog 是Mysql Replication的根基

自动连接基于GTID做到(全局事务标识符:server_uuid:nuber)

同步复制状态下,A崩溃,直接切换到B,B升级为新主库对外服务

异步复制状态下,...必须把主库拉起, 对外服务

异地灾备-双活 有点不明白

北京主A、上海主B,同时使用,2者之间互相同步,我的理解AB之间的数据保持动态的一致,业务上如何保证?

假如有一个热点账户记录,AB同时有更新,同时互相同步,是不是乱套了?

一个事实:B的并发度低于A的并发度。A可以万箭齐发,B也得一箭一箭发(前面好像讲B有schedule分配到多个worker,没讲完)

解决:非持久化,事务在内存中执行和提交

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值