![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
莫失莫忘hh
保持学习,保持充实
展开
-
MySQL学习笔记之MySQL的自增主键为什么不连续(二十三)
声明:本文章内容是根据极客时间中林晓斌的课程《MYSQL45讲》,经过学习,加以自己的理解形成的笔记。具体原文可以到官网进行阅读。如有侵权请,告知删除。1、自增主键在MySQL当中AUTO_INCREMENT用来修饰的字段表示,改主键是是自增的。那么自增的主键保存在哪里。不同的引擎保存策略不相同。MyISAM 引擎的自增值保存在数据文件中。InnoDB 引擎的自增值,其实是保存在了内...原创 2020-03-29 17:59:34 · 456 阅读 · 0 评论 -
MySQL学习笔记之MySQL是如何保证数据不丢的(二十二)
声明:本文章内容是根据极客时间中林晓斌的课程《MYSQL45讲》,经过学习,加以自己的理解形成的笔记。具体原文可以到官网进行阅读。如有侵权请,告知删除。前面的文章介绍过mysql能够保证发生重启的时候数据的正确性,其实现过程是通过bin log与redo log两个日志系统相互配合完成的。1、bin log的写入机制通过上面这张图片 可以了解到 binlog的写入机制为1、binlo...原创 2020-03-28 22:40:55 · 149 阅读 · 0 评论 -
MySQL学习笔记之一条简单的语句也执行如此的慢(十九)
声明:本文章内容是根据极客时间中林晓斌的课程《MYSQL45讲》,经过学习,加以自己的理解形成的笔记。具体原文可以到官网进行阅读。如有侵权请,告知删除。1.等 MDL 锁此时的态就是SessionA 把SessionB给阻塞了。A正持有一个MDL写锁,把select语句给堵住了。2.等flushflush操作就是将内存数据刷入磁盘的一个过程。3.等行锁4.慢查询lock...原创 2020-03-04 22:34:21 · 145 阅读 · 0 评论 -
MySQL学习笔记之SQL语句逻辑相同,性能差异巨大(十八)
声明:本文章内容是根据极客时间中林晓斌的课程《MYSQL45讲》,经过学习,加以自己的理解形成的笔记。具体原文可以到官网进行阅读。如有侵权请,告知删除。1.条件字段函数操作现如今有下表交易日志表tradelogCREATE TABLE `tradelog` ( `id` int(11) NOT NULL, `tradeid` varchar(32) DEFAULT NULL, --...原创 2020-03-02 19:53:48 · 163 阅读 · 0 评论 -
MySQL学习笔记之日志相关问题(十五)
声明:本文章内容是根据极客时间中林晓斌的课程《MYSQL45讲》,经过学习,加以自己的理解形成的笔记。具体原文可以到官网进行阅读。如有侵权请,告知删除。1.MySQL发生异常重启我们知道,mysql 是支持crash-save的,他依靠的机制是 binlog(归档日志)和redo log(重做日志),依靠两阶提交,保证数据日志的一致性。1.1时刻A 发生异生常重启重启之后,发现并没有...原创 2020-02-29 10:27:14 · 122 阅读 · 0 评论 -
MySQL学习笔记之count(*)(十四)
声明:本文章内容是根据极客时间中林晓斌的课程《MYSQL45讲》,经过学习,加以自己的理解形成的笔记。具体原文可以到官网进行阅读。如有侵权请,告知删除。1.count(*)的实现方式MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回这个数,效率很高;InnoDB引就比较麻烦,每次执行count(*)的时候都需要把数据一行以上的从引擎读出来,然后...原创 2020-02-28 14:47:37 · 165 阅读 · 0 评论 -
MySQL学习笔记之为什么表数据删掉一半,表文件大小不变(十三)
1.参数 innodb_file_per_table表数据既可以存在共享表空间里,也可以是单独的文件。这个行为是由参数 innodb_file_per_table 控制的:参数设置为OFF ,表的数据存放在系统表空间,也就是跟数据字典放在一起参数设置为ON,每个InnoDB 表数据存储在/ibd为后缀的文件从 MySQL 5.6.6 版本开始,它的默认值就是 ON 了2.数据删除流程...原创 2020-02-28 10:37:54 · 369 阅读 · 0 评论 -
MySQL学习笔记之为什么数据库会突然变慢(十二)
声明:本文章内容是根据极客时间中林晓斌的课程《MYSQL45讲》,经过学习,加以自己的理解形成的笔记。具体原文可以到官网进行阅读。如有侵权请,告知删除。1.抖动简单理解就是数据库,刚刚还好好的,突然就感觉整体性能都下降了,变的很慢呢。这就是所谓的抖动现象。2.WAL前面的笔记中介绍过,MYSQL数据在做UPDATE操作的时候,会先把更新的数据放在内存中,但是并不会立刻写磁盘,而且先记在...原创 2020-02-27 20:11:24 · 854 阅读 · 0 评论 -
MySQL学习笔记之如何给数据库的字符加索引(十一)
声明:本文章内容是根据极客时间中林晓斌的课程《MYSQL45讲》,经过学习,加以自己的理解形成的笔记。具体原文可以到官网进行阅读。如有侵权请,告知删除。1.前缀索引字符串支持前缀索引,目的是当需要添加索引列的字符串特别长时候,索引占空间会很大,这个时候可以只取字符串的 部分当做索引。MYSQL是支持前缀索引的2.添加前缀索引例如:给一个emali 字段添加索引的时候。可以这样。mys...原创 2020-02-26 17:37:23 · 458 阅读 · 0 评论 -
MYSQL学习笔记之选错索引
声明:本文章内容是根据极客时间中林晓斌的课程《MYSQL45讲》,经过学习,加以自己的理解形成的笔记。具体原文可以到官网进行阅读。如有侵权请,告知删除。优化器优化器的目的是选择索引。他会根据自己内部的判断,从而选择一个最优的执行方案。而判断是一个因素就是扫描行数,越少的扫描行数,就说明访问磁盘的数据次数越少,消耗的CPU资源也就越少。1.扫描行数如何判断MYSQL开始执行之前,并不能知...原创 2020-02-26 15:08:02 · 125 阅读 · 0 评论 -
MYSQL学习笔记之普通索引和唯一索引,该如何选择?(九)
声明:本文章内容是根据极客时间中林晓斌的课程《MYSQL45讲》,经过学习,加以自己的理解形成的笔记。具体原文可以到官网进行阅读。如有侵权请,告知删除。普通索引和唯一索引的本质上的区别就是索引的重复与否。主键也是一种唯一索引,那么就用下面的图片举例说明上述图片中ID是唯一索引;k是普通索引1.查询过程对于普通索引,当查询到记录之后,需要查询下一个记录,知道碰到第一个不满足条件的记录...原创 2020-02-23 20:01:16 · 159 阅读 · 0 评论 -
MySQL学习笔记之再谈事务隔离级别(八)
声明:本文章内容是根据极客时间中林晓斌的课程《MYSQL45讲》,经过学习,加以自己的理解形成的笔记。具体原文可以到官网进行阅读。如有侵权请,告知删除。回顾可重复读:在事务启动的时候会创建一个视图read-view,之后的如果有其他事务进行修改的话,该事务看到的数据视图和启动时候看到的是一样读提交:每次sql语句执行的时候会创建一次视图,以该视图的数据为标准,获取数据。行锁:事务更新一...原创 2020-02-20 22:39:58 · 129 阅读 · 0 评论 -
MySQL学习笔记之行锁(七)
声明:本文章内容是根据极客时间中林晓斌的课程《MYSQL45讲》,经过学习,加以自己的理解形成的笔记。具体原文可以到官网进行阅读。如有侵权请,告知删除。1.行锁MySQL的行锁是在引擎层由各个引擎实现的,MyISAM引擎不支持行锁。不支持行锁,那么也就是说他的并发控制只能用表锁、这种锁的粒度比较大,不适合业务的发展,这也就是 InnoDB引擎的巨大优势所在,支持行锁。2.两段锁当事务...原创 2020-02-17 17:17:44 · 188 阅读 · 0 评论 -
MySQL学习笔记之全局锁和表锁(六)
声明:本文章内容是根据极客时间中林晓斌的课程《MYSQL45讲》,经过学习,加以自己的理解形成的笔记。具体原文可以到官网进行阅读。如有侵权请,告知删除。根据加锁范围,MySQ里面的锁可以分为:全局锁,表锁,行锁1.全局锁全局锁就是对整个数据库加锁,使用命令Flush tables with read lock (FTWRL),当使用这个命令之后,全局就处于一个加锁的状态,其他线程下的语句...原创 2020-02-17 15:44:45 · 121 阅读 · 0 评论 -
MYSQL学习笔记之简单的UPDATE语句(二)
声明:本文章内容是根据极客时间中林晓斌的课程《MYSQL45讲》,经过学习,加以自己的理解形成的笔记。具体原文可以到官网进行阅读。如有侵权请,告知删除。UPDATE t SET name = jack WHERE id = 1这是一个简单的更新语句,它会如同查询语句一样,经过流程,连接器,分析器,优化器,执行器。它首先会查看内存中是否有 id为1的数据 如果有的话,那么就会更新返回。更新操作...原创 2020-02-12 22:12:52 · 259 阅读 · 0 评论 -
MYSQL存储过程、游标及嵌套游标的基本使用
1.存储过程mysql中的存储过程,可以理解成 C、JAVA中的方法,也就是对一些逻辑操作,加以封装一层外壳。可以提高sql的复用。比如当我们需要初始化一个表的数据。下次再需要的时候,如果又一条一条的插入,会显的比较麻烦,所以我们可以对外包装一下。形成一个innserDate的存储过程。以后使用就直接调用即可。2.游标游标其实就是在sql中,对多条结果集数据 进行遍历获取数据的一个机制。把结...原创 2020-02-11 21:57:42 · 837 阅读 · 0 评论 -
MYSQL学习笔记之语句是如何执行的(一)
声明:本文章内容是根据极客时间中林晓斌的课程《MYSQL45讲》,经过学习,加以自己的理解形成的笔记。具体原文可以到官网进行阅读。如有侵权请,告知删除。体会学习一个新的知识时,自己从前的学习线路是:想第一次就从头学习到尾,遇到每一个小知识点时,想第一次学习的时候,就把它弄懂。结果导致自己对知识宏观上的认识会来的比较慢,相当于后知后觉。如今学习的时候,对于一个新的知识采用的是,先广度优先搜...原创 2020-02-10 15:01:41 · 221 阅读 · 0 评论 -
MYSQL中连接查询中左连接left join、右连接 right join、内连接 inner join的区别
前言:今天有时间、就记录一下这几个关键字的用法。一、left join 左连接。连接查询时候 保持左表完整//A表的记录完整 也就是说除了符合连接条件的数据外 A表的其他数据也会出现在结果集当中A left join B on A.xxx = B.xxx 二、right join 左连接。连接查询时候 保持右表完整//B表的记录完整 也就是说除了符合连接条件的数...原创 2020-01-09 15:07:21 · 327 阅读 · 0 评论 -
MYSQL优化小技巧
数据库的优化1、引擎的选择:Myisam:数据库并发不大,读多写少,而且都能很好的用到索引,sql语句比较简单的应用,TB数据仓库Innodb:并发访问大,写操作比较多,有外键、事务等需求的应用,系统内存较大。区别:事务安全 myisam不支持事务而innodb支持查询和添加速度 myisam不用支持事务就不用考虑同步锁,查找和添加和添加的速度快支持全文索引 myisam支持in...原创 2019-09-09 22:47:16 · 151 阅读 · 0 评论 -
MongoDB的入门
花一点时间大致了解了一下MongDB的知识 和基本概念,现在做一个记录1、什么是MongoDBMongoDB 是一个跨平台的,面向文档的数据库,是当前 NoSQL 数据库产品中最热门 的一种。它介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关系数据库的产品。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存 储比较复杂的数据类型。2、Mong...原创 2019-07-19 08:18:44 · 163 阅读 · 0 评论