![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据库及SQL语句
文章平均质量分 87
数据库基础知识和SQL语句的使用
魏森林
这个作者很懒,什么都没留下…
展开
-
week8 day5 多版本并发控制MVCC:快照读 VS 当前读
week8 day5 多版本并发控制MVCC:快照读 VS 当前读一、多版本并发控制MVCC:快照读 VS 当前读二、MVCC原理分析一、多版本并发控制MVCC:快照读 VS 当前读MySQL InnoDB存储引擎,实现的是基于多版本的并发控制协议——MVCC (Multi-Version Concurrency Control) (注:与MVCC相对的,是基于锁的并发控制,Lock-Based Concurrency Control)。MVCC最大的好处,相信也是耳熟能详:读不加锁,读写不冲突。在读多原创 2021-03-13 17:53:12 · 131 阅读 · 0 评论 -
week8 day4 事务隔离机制
week8 day4 事务隔离机制一、事务隔离机制介绍二、未提交读(read uncommitted)三、提交读(read committed)四、可重复读(repeatable reads)五、可序列化(serializable)六、innodb存储引擎一、事务隔离机制介绍事务具有原子性、一致性、隔离性、持久性四大特性,而隔离性顾名思义指的就是事务彼此之间隔离开,多个事务在同时处理一个数据时彼此之间互相不影响,如如果隔离的不够好就有可能会产生脏读、不可重复度、幻读等读现象,为此,隔离性总共分为四种级别原创 2021-02-26 17:12:50 · 85 阅读 · 0 评论 -
练习:Next-key lock案例
练习:Next-key lock案例# 准备数据create table t1(id int,key idx_id(id))engine=innodb; insert t1values(1),(5),(7),(11); mysql> explain select * from t1 where id=7 for update; -- key字段为idx_id,命中索引,即会采用行锁而不是表锁+----+-------------+-------原创 2021-02-26 16:03:26 · 205 阅读 · 0 评论 -
week8 day3 数据库锁机制
week8 day3 数据库锁机制一、数据库的锁机制1.1 什么是锁?为什么要加入锁机制?1.2 并发控制二、锁的分类三、MySQL中的行级锁、表级锁、页级锁3.1 行级锁3.2 表级锁(倾向于读)3.3 页级锁四、行级锁之共享锁与排他锁(级别)五、innodb存储引擎的锁机制5.1 行级锁与表级锁的使用区分5.2 三种行锁的算法5.3 死锁问题5.4 什么时候使用表锁5.5 行锁优化建议六、乐观锁与悲观锁6.1 悲观锁6.2 乐观锁一、数据库的锁机制1.1 什么是锁?为什么要加入锁机制?锁是计算机协原创 2021-02-26 08:57:09 · 150 阅读 · 0 评论 -
week8 day2 数据库读现象
week8 day2 数据库读现象一、数据库读现象1.1 脏读 dirty read1.2 不可重复读 nonrepeatable read1.3 幻像读取 phantom read二、解决方案一、数据库读现象数据库管理软件的“读现象”指的是当多个事务并发执行时,在读取数据方面可能碰到的问题,包括有脏读、不可重复读、幻读。ps:对于一些数据库管理软件会自带相应的机制去解决脏读、不可重复读、幻读等问题,因为这些自带的机制,下述的一些实验现象可能在某一数据库管理软件的默认机制下并不成立,即我们并不能在所有原创 2021-02-25 22:25:17 · 84 阅读 · 0 评论 -
week8 day1 事务
week8 day1 事务一、事务介绍1.1 什么是事物?1.2 为什么需要事务?二、事务的4个特性三、事务的3种运行模式3.1 自动提交事务(隐式开启、隐式提交)3.2 显示事务(显示开启、显示提交)注意3.3 隐式事务(隐式开启、显示提交)一、事务介绍1.1 什么是事物?事务(transaction),顾名思义就是要做或者所做的事情,数据库事务指的是单个逻辑工作单元执行一系列操作(sql语句)。这些操作要么全部执行,要么全部不执行。1.2 为什么需要事务?将一系列sql放入一个事务中有两个目的原创 2021-02-25 22:06:21 · 162 阅读 · 0 评论 -
SQL语句中explain各字段含义
SQL语句中explain各字段含义1 id:2 select_type3 type4 table5 possible_keys6 Key key列显示MySQL实际决定使用的键(索引)7 key_len8 ref9 rows10 Extra1 id:包含一组数字,表示查询中执行select子句或操作表的顺序Example(id相同,执行顺序由上至下)如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行id如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id值越大,优原创 2021-02-25 21:07:48 · 1182 阅读 · 0 评论 -
二叉树、平衡二叉树、B树、B+树
二叉树、平衡二叉树、B树、B+树一、索引介绍二、二叉树、平衡二叉树、B树、B+树2.1 二叉树2.2 平衡二叉树2.3 B树注意:2.4 B+树三、聚集索引与非聚集索引3.1 聚集索引、非聚集索引3.2 利用聚集索引和非聚集索引查找数据3.2.1 利用聚集索引查找数据3.2.2 利用非聚集索引查找数据四、总结一、索引介绍索引这个词,相信大多数人已经相当熟悉了。不过为了文章的完整性,这里再啰嗦一下。索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。 索引最形象的比喻就是图书的目录了转载 2021-02-25 16:51:55 · 523 阅读 · 0 评论 -
week7 day5 索引原理与慢查询优化
week7 day5 索引原理与慢查询优化一、介绍二、索引的原理三、索引的数据结构四、聚集索引与辅助索引五、MySQL索引管理六、测试索引七、正确使用索引八、联合索引与覆盖索引九、查询优化神器——explain十、慢查询优化的基本步骤十一、慢日志管理十二、innodb存储引擎索引知识小结一、介绍为什么要有索引?一般的应用系统,读取比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重原创 2021-02-25 15:33:23 · 123 阅读 · 1 评论 -
week7 day4 视图、触发器、存储过程、函数、流程控制
week7 day4 视图、触发器、存储过程、函数、流程控制一、视图二、触发器(无法由用户自己调用,增删改操作自动触发)三、存储过程(可以由用户自由调用,相当于python中的函数)四、函数五、流程控制一、视图视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。当我们创建一个虚拟表的时候会发现存储数据的目录下多了一个表名.frm文件,说明创建虚拟表时只会保存表结构,表数据是来自于其他表的。使用视图原创 2021-02-25 09:12:44 · 111 阅读 · 0 评论 -
week7 day4 数据备份,pymysql模块
week7 day4 数据备份,pymysql模块原创 2021-02-28 21:56:52 · 124 阅读 · 1 评论 -
week7 day3 记录相关操作之单表查询
week7 day3 记录相关操作之单表查询1.1 单表查询的用法1.2 关键字的执行优先级(重点)1.3 简单查询1.4 WHERE约束1.5 分组查询GROUP BY1.6 HAVING过滤1.7 查询排序ORDER BY1.8 限制查询的记录数LIMIT1.9 使用正则表达式查询1.1 单表查询的用法select 字段1,字段2,字段3...from 表名where 条件group by fieldhaving 筛选order by fieldlimit 限制条数1.2 关键字的执原创 2021-02-24 15:03:47 · 119 阅读 · 0 评论 -
week7 day3 记录相关操作
week7 day3 记录相关操作一. 介绍二. 插入数据INSERT(*****)三. 更新数据UPDATE四. 删除数据DELETE五. 查询数据SELECT5.1 单表查询5.1.1 单表查询的用法5.1.2 关键字的执行优先级(重点)5.1.3 简单查询5.1.4 WHERE约束5.1.5 分组查询GROUP BY5.1.6 HAVING过滤5.1.7 查询排序ORDER BY5.1.8 限制查询的记录数LIMIT5.1.9 使用正则表达式查询5.2 多表查询六. 权限管理一. 介绍MySQL数原创 2021-02-23 21:09:58 · 76 阅读 · 1 评论 -
week7 day2 表相关操作
week7 day2 表相关操作一. 存储引擎介绍1.1 什么是存储引擎1.2 MySQL支持的存储引擎1.3 使用存储引擎二. 表介绍三. 创建表四. 查看表结构五. 数据类型5.1 介绍5.2 数值类型5.2.1 整数类型5.2.2 浮点型5.2.3 位数类型(了解)5.3 日期类型5.4 字符串类型5.5 枚举类型与集合类型六. 表完整性约束七. 修改表ALTER TABLE八. 复制表九. 删除表一. 存储引擎介绍存储引擎即表类型,MySQL根据不同的表类型会有不同的处理机制。1.1 什么是存原创 2021-02-22 21:26:28 · 252 阅读 · 1 评论 -
week7 day2 数据库相关操作
week7 day2 数据库一. 系统数据库二. 创建数据库三. 数据库相关操作一. 系统数据库information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等。performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、锁等现象 。mysql: 授权库,主要存储系统用户的权限信息。test: MySQL数据库系统自动创建的测试数据库二.原创 2021-02-22 18:02:47 · 62 阅读 · 0 评论 -
week7 day1 初识数据库
week7 day1 认识数据库原创 2021-02-22 10:14:21 · 129 阅读 · 1 评论