MySQL第三讲】的更多相关文章

1. 视图 1.1 视图前戏 我们之前讲有,临时表的概念. 现在我们创建一个临时表:select * from (select * from tb1 where id between 10 and 100) as B where B.name = '李四''; 上面的重命名的表B就是一个临时表,可以看出临时表是一个动态的查询过程生成的表.所以,临时表就是经过一条查询语句运行之后生成的表.现在想想一下,我们有的时候,是有可能经常使用到同一张临时表,我们总不能每次用一次临时表,就写同样的代码吧.那多…
昨日内容回顾 公钥私钥 数据库存储引擎 MyISAM 是5.5版本之前默认的存储引擎 存取数据的速度较快.但是安全性偏差 三个文件 结构.索引.数据 InnoDB 5.5版本及之后默认的存储引擎 存取数据的速度较MyISAM偏慢.但是安全性更高.能够支持更多的功能 两个文件 结构.数据 BlackHole 黑洞 存什么就消失什么 一个文件 结构 memory 内存 所有的数据都是直接保存在内存中的断电立刻丢失 一个文件 结构 创建表的完整语法 create table 表名( 字段名1 字段类型…
python入门到进阶 Python基础2——数据类型的操作 Python基础——函数入门 Python基础——函数进阶 Python基础——函数的装饰器 Python基础——函数的装饰器 Python基础——函数的迭代器和生成器 Python基础——内置函数 数据库教程 Windows系统下安装MySQL详细教程(命令安装法) MySQL第一讲 一一一一 数据库入门 MySQL第二讲 一一一一 MySQL语句进阶 MySQL第三讲 一一一一 视图.触发器.函数.存储过程 前端教程 jQuery…
一.隔离性与隔离级别 1.事务的特性 原子性 一致性 隔离性 持久性 2.不同事务隔离级别的区别 读未提交:别人改数据的事务尚未提交,我在我的事务中也能读到.读已提交:别人改数据的事务已经提交,我在我的事务中才能读到.可重复读:别人改数据的事务已经提交,我在我的事务中也不去读.串行:我的事务尚未提交,别人就别想改数据.这4种隔离级别,并行性能依次降低,安全性依次提高. 3.读提交”和“可重复读” 假设数据表T中只有一列,期中一行的值为1,下面是按照时间顺序执行两个事物的行为 mysql> cre…
一.本节概述 我经常被问到这样一个问题:分区表有什么问题,为什么公司规范不让使用分区表呢?今天,我们就来聊聊分区表的使用行为,然后再一起回答这个问题. 二.分区表是什么? 为了说明分区表的组织形式,我先创建一个表 t: 图 1 表 t 的磁盘文件 我在表 t 中初始化插入了两行记录,按照定义的分区规则,这两行记录分别落在 p_2018和 p_2019 这两个分区上. 可以看到,这个表包含了一个.frm 文件和 4 个.ibd 文件,每个分区对应一个.ibd 文件.也就是说: 对于引擎层来说,这是…
一.引子 我经常会被问到这样一个问题:我的主机内存只有 100G,现在要对一个 200G 的大表做全表扫描,会不会把数据库主机的内存用光了? 这个问题确实值得担心,被系统 OOM(out of memory)可不是闹着玩的.但是,反过来想想,逻辑备份的时候,可不就是做整库扫描吗?如果这样就会把内存吃光,逻辑备份不是早就挂了? 所以说,对大表做全表扫描,看来应该是没问题的.但是,这个流程到底是怎么样的呢? 二.全表扫描对 server 层的影响 假设,我们现在要对一个 200G 的 InnoDB…
一.引子 经常会有同学来问我,我的数据库占用空间太大,我把一个最大的表删掉了一半的数据,怎么表文件的大小还是没变? 那么今天,我就和你聊聊数据库表的空间回收,看看如何解决这个问题. 这里,我们还是针对 MySQL 中应用最广泛的 InnoDB 引擎展开讨论.一个 InnoDB 表包含两部分,即:表结构定义和数据.在 MySQL 8.0 版本以前,表结构是存在以.frm 为后缀的文件里.而 MySQL 8.0 版本,则已经允许把表结构定义放在系统数据表中了.因为表结构定义占用的空间很小,所以我们今…
一.本节概要 今天这篇文章,我会继续和你介绍在业务高峰期临时提升性能的方法.从文章标题“MySQL 是怎么保证数据不丢的?”,你就可以看出来,今天我和你介绍的方法,跟数据的可靠性有关. 在专栏前面文章和答疑篇中,我都着重介绍了 WAL 机制(你可以再回顾下第 2 篇.第 9篇.第 12 篇和第 15 篇文章中的相关内容),得到的结论是:只要 redo log 和 binlog保证持久化到磁盘,就能确保 MySQL 异常重启后,数据可以恢复. 评论区有同学又继续追问,redo log 的写入流程是…
参考极客时间专栏<MySQL实战45讲>学习笔记 一.基础篇(8讲) MySQL实战45讲学习笔记:第一讲 MySQL实战45讲学习笔记:第二讲 MySQL实战45讲学习笔记:第三讲 MySQL实战45讲学习笔记:第四讲 MySQL实战45讲学习笔记:第五讲 MySQL实战45讲学习笔记:第六讲 MySQL实战45讲学习笔记:第七讲 MySQL实战45讲学习笔记:第八讲 二.实践篇-索引(8讲) MySQL实战45讲学习笔记:第九讲 MySQL实战45讲学习笔记:第十讲 MySQL实战45讲学…
数据库锁设计的初衷是处理并发问题,这也是数据库与文件系统的最大区别. 根据加锁的范围,MySQL里大致可以分为三种锁:全局锁.表锁和行锁.接下来我们会分三讲来介绍这三种锁,今天要讲的是全局锁. 全局锁 全局锁,顾名思义,就是对整个数据库加锁.MySQL 提供了一个加全局读锁的方法,命令是 Flush tables with read lock(FTWRL). 全局锁典型的应用场景是做全库的逻辑备份. 通过FTWRL加全局锁 通过FTWRL确保不会有其他线程对数据库做更新,然后对整个库做备份.注意…