自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 MySQL-13:数据库表回收

12.1表结构一个InnoDB表包含表结构定义和数据。表结构定义: 在MySQL 8.0 版本之前,表结构是存储在以.frm为后缀的文件里,在MySQL 8.0 之后,表结构定义在系统数据表中。表数据: 表数据即可以存在系统共享表空间中,也可以是单独文件。这个行为由innodb_file_per_table参数控制,当参数为on时,表数据存在以.ibd为后缀的文件中;当参数为off时,表数据存在系统共享空间。在MySQL 5.6.6版本之后,参数默认值为on。以下的讨论基于innodb_filr_p

2020-11-30 01:34:33 29

原创 MySQL-12:数据库的flush操作

WAL机制: Write-Ahead Logging, 先写日志,再写磁盘。 当有一条记录需要更新的时候,InnoDB引擎会先把记录写到redo log里面,并更新内存,这个时候更新计算完成了。InnoDB引擎会在在系统空闲的时候,将这个操作记录更新到磁盘里。WAL机制的益处: redo log 和 binlog 都是顺序写,磁盘的顺序写比随机写速度要快,可以大幅度降低磁盘的 IOPS 消耗。数据库的flush操作就是将内存中的数据更新到磁盘中并将redo log的checkpoint前推,保持磁盘和内

2020-11-29 00:33:54 40

原创 MySQL-11:怎么给字符串字段加索引

例如字段email,如果没有在email字段上加索引,就会走全表扫描。在email字段上创建索引的方式: mysql> alter table SUser add index index1(email); 或 mysql> alter table SUser add index index2(email(6));第一种: 索引包含整个email字符串;第二种: 索引只包含email的前6个字节,这个是基于MySQL支持前缀索引。l两种方式存储结构上的区别: 第二种

2020-11-28 00:05:29 31

原创 MySQL-10:MySQL的索引选择

目的: MySQL在执行一个sql时,我们并没有主动指定使用哪个索引,具体的索引选择工作是由MySQL的优化器做的。忘记的可以去看下MySQL的基础架构。第一步: 创建一个表并往里面插入数据,我们插入的数据数量为100000条 CREATE TABLE `t` ( `id` int(11) NOT NULL, `a` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL, PRIMARY KEY (`id`),

2020-11-27 00:39:53 22

原创 MySQL-09:普通索引和唯一索引

索引是数据库优化中常用的一种手段,索引有多种种类,有普通索引,唯一索引,主键索引,组合索引,全文索引等,下面主要是来区别普通索引和唯一索引。普通索引的构建: ALTER TABLE `T1` ADD INDEX `k_title` (`title`) USING BTREE ;唯一索引的构建: ALTER TABLE `T2` ADD UNIQUE INDEX `un_index_title` (`title`) USING BTREE ;MySQL的主键不易过长 →追根究底还是非

2020-11-25 00:29:04 26

原创 MySQL-08:事务:可重复读和读提交

事务隔离级别中存在可重复读,在事务启动时会生成一个视图read-view,之后事务中的任何需求数据都会来源于该视图,即使其他事务对某些数据进行了修改,那可重复读隔离又是如何实现的呢?如果一个事务在可重复读隔离级别下,其他事务对某行数据进行了修改,而后当前事务又对那行事务进行修改并读取,那读取的数值还是和事务启动时看见的一样吗?现在,我们就是来来探究这两个问题的,来看图: mysql> CREATE TABLE `t` ( `id` int(11) NOT NULL,

2020-11-24 00:22:50 43

原创 MySQl-07:行锁

MySQL的行锁是由各个引擎自己实现的,但不是所有引擎都支持,例如MyISAM就不支持行锁,在处理并发性问题的时候就只能使用表锁的方式。InnoDB是支持行锁,这也是它取代MyISAM引擎的原因之一。1.1两阶段锁协议例有如下事务发生,事务A在执行过程中会优先持有id=1和id=2的行锁,等待事务提交的时候才会将持有的行锁释放,事务B才能继续执行,这就是两阶段锁协议。两阶段锁协议: 在事务执行中,会因需请求行锁,请求到锁继续执行,请求不到则阻塞挂起,直到事务提交,再将持有的行锁释放出去。知道上述设

2020-11-21 22:25:13 10

原创 MySQL-06:全局锁和表锁

数据库在处理并发性请求的需要,避免出现并发性问题,需要对数据库资源指定合理的访问规则,锁就是用来实现这些访问规则的数据结构。根据加锁的访问,MySQL中的锁分为全局锁,表级锁,行级锁。1.1全局锁全局锁: 一旦加锁,会对整个数据库实例加锁。MySQL提供加锁命令:Flush tables with read lock (FTWRL),解锁命令:unloack tables或者客户端断开与数据库的连接。在全局加锁的情况下,整个库处于只读的状态下,以下命令都会被阻塞:数据库定义语句(DDL),数据库更

2020-11-20 16:06:46 22 1

原创 MySQL-05:数据库索引(二)

先来看个语句,当前sql语句 select * from T where k between 3 and 5 会执行几次树的搜索操作,会扫描多少行?mysql> create table T ( ID int primary key, k int NOT NULL DEFAULT 0, index k(k))engine=InnoDB;insert into T values(100,1),(200,2),(300,3),(500,5),(600,6),(700,7)

2020-11-19 22:29:00 11

原创 MySQL-04:索引(一)

1、索引索引的出现其实就是为了提高数据查询的效率,实质上就是将存储的数据按数据结构的方式存储起来。对于数据库的表而言,每一张表可能是多个索引实现。2、索引的简单实现索引常见的实现:哈希表,有序数组和搜索树。**哈希表:**哈希表方式,处理哈希碰撞用的是链表法,主要还是说说优缺点:单个数据查询或者新增数据很快,但是要区间查询数据就要遍历全部数据,所以哈希表适用于等值查询。**有序数组:**在进行等值查询和区间查询的时候效率很好,不过新增数据时就要挪动插入位置后面的数据,数组的特性嘛,适用于静态存储

2020-11-19 00:03:42 17

原创 MySQL-03:事务隔离

事务: 一组操作要不成功,要不失败。在MySQL中,事务支持是在引擎层实现的,但并不是所有的引擎都是支持事务的,例如MySQL的原生引擎MyISAM,这也是它被InnoDB引擎取代的重要原因。一提到事务,就必然想到事务的特性:ACID→(原子性,一致性,隔离性,持久性)。当数据库上有多个事务同时执行时,就可能出现脏读,不可重复读,幻读的问题,为了解决该问题,便有了“隔离级别”的概念。脏读:当前事务读到其他事务未提交的数据。不可重复读:在同一个事务内,前后读取记录内容不一致。幻读:在同一个事务内

2020-11-17 23:17:20 13

原创 MySQL-02:日志系统

MySQL在执行update操作时涉及到MySQL的日志系统:redo log和binlog。一条简单的update语句如下:mysql> update table1 set a = a+1 where id =1;update语句的执行流程也会像查询语句的那一套流程:链接器→查询缓存→分析器→优化器→执行器→存储引擎。不过update语句涉及到MySQL的日志模块:redo log(重做日志)和binlog(归档日志)2.1 redo log当一条更新语句过来,InnoDB引擎会先把记

2020-11-16 23:55:36 12

原创 MySQL-01:MySQL的基础架构

先来看下,例有如下语句: mysql> select * from tableName where ID=1;MySQL的基本架构如下,我们来逐个分析:MySQL 可分为 Server 层和存储引擎层两部分 :Server 层:包括连接器、查询缓存、分析器、优化器、执行器五个组件,这些组件涵盖 MySQL 的大多数功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。存储引擎层:它负责数据的存储和提取。其架构

2020-11-15 23:54:31 9

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除