mysql的7天训练营笔记

举报
黄生 发表于 2020/07/20 23:20:47 2020/07/20
【摘要】 今天的内容比较干货,但是难吸收。作业都没有,说明实践很难。笔记如下:mysql8.0的select 语法结构:查询表达式、表对象、where过滤条件、order by / group by 、limit offset、window、having condition、Lock Clause、Union子查询出现在:表对象中-叫Derived table, 查询表达式-Scalar Operan...

第4天:

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

笔记如下:

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

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

    1. 关联/非关联子查询

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

  4. 查询的执行策略

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

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

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

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

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

  5. 执行计划:explain query statement

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

    2. 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,没讲完)

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



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。