随笔分类 -  数据库

摘要:## 背景 最近我们的登录系统在每个钟点的 18分就会登录不进去, 排查后发现有锁等待情况 , 周期地发生那么很大几率是自动任务了, 为了找到为什么会锁等待 ,我们做了以下的排查 ## 排查过程 ````SQL -- 1.锁住的事务 SELECT * FROM INFORMATION_SCHEMA. 阅读全文
posted @ 2023-07-05 11:05 float123 阅读(242) 评论(0) 推荐(0) 编辑
摘要:文章图片来自参考文章,图片非原创概述事务隔离级别可解决的问题 下面的章节将会解释脏读,不可重复度和幻读。MySQL 默认的事务隔离级别是可重复读(repeatable – read ) 。隔离级别读未提交(read – uncommited) 我们从名称上级就可以了解这个过程,读未提交,未commi 阅读全文
posted @ 2022-12-30 14:23 float123 阅读(71) 评论(0) 推荐(0) 编辑
摘要:## 前言 文章总结于> ,非原创. 主要的内容的是关于 `redo log` 和 `bin log` 的 ## 问题 ### 追问1:MySQL怎么知道binlog是完整的? 回答:一个事务的binlog是有完整格式的: statement格式的binlog,最后会有COMMIT; row格式的b 阅读全文
posted @ 2021-10-07 23:02 float123 阅读(59) 评论(0) 推荐(0) 编辑
摘要:## 前言 我们将从缓冲池开始介绍 ,然后后面开始介绍了 redo log 的底层到底是如何记录物理日志的. ## 问题 - redo log 长什么样 ? - redo log 刷到哪去 ? ## redo log 的动机 redo log 具有以下功能: 1. 提高事务的性能 redo log 阅读全文
posted @ 2021-10-07 22:34 float123 阅读(1276) 评论(0) 推荐(0) 编辑
摘要:## 前言 上篇文章我们知道了产生幻读的原因 ,以及 innoDB 中解决幻读的方案 ,这篇文章中我将介绍关于 `in share mode` 和 `for update` 这两种上锁在可重复读事务下的一些规则 . 文章部分描述和图片来自> ,属于学习总结 ,半原创 ## 规则 课程中讲到了几点规则 阅读全文
posted @ 2021-10-05 16:13 float123 阅读(497) 评论(0) 推荐(0) 编辑
摘要:## 前言 文章总结自参考资料, 部分图片和代码来自参考资料 ,非原创 ,文章为学习总结. ## 幻读的产生 不特别声明,以下事务都在可重复读事务隔离级别中进行. ```` begin; select * from t where d=5 for update; commit; ```` 我们之前学 阅读全文
posted @ 2021-10-01 23:50 float123 阅读(234) 评论(0) 推荐(0) 编辑
摘要:文章部分图片和总结来自参考资料,半原创 ## 概述 **MySQL的可重复读隔离级别,事务T启动的时候会创建一个视图read-view,之后事务T执行期间,即使有其他事务修改了数据,事务T看到的仍然跟在启动时看到的一样。**也就是说,一个在可重复读隔离级别下执行的事务,好像与世无争,不受外界影响。 阅读全文
posted @ 2021-09-08 15:05 float123 阅读(198) 评论(0) 推荐(0) 编辑
摘要:问题 - int(1) int(4) 中的作用是做什么 ## 概述 int(1),int(4)括号中的数字是为了填充长度空缺的长度。 ## int(1)和int(4) 下面两小章节来自参考资料 ### 浮点型的长度 浮点型"的长度是用来限制数字存储范围的. 比如 float(3,2) 只能够写入 0 阅读全文
posted @ 2020-11-06 17:59 float123 阅读(6140) 评论(0) 推荐(0) 编辑
摘要:文章图片来自《MySQL 45讲》非原创 ,本文是学习总结 ## 概述 本文将会介绍 order by 排序中的两种情况 - 内存充足,全字段排序 - 内存不充裕,rowid 排序 什么意思呢?全字段排序讲的是整行拿到 sort buffer 中进行排序,然后返回正确的结果给客户端,而 rowid 阅读全文
posted @ 2020-07-15 23:12 float123 阅读(423) 评论(0) 推荐(0) 编辑
摘要:概述文章介绍了一些关于 MongoDB 的一些使用场景。使用场景具体实例案例1用在应用服务器的日志记录,查找起来比文本灵活,导出也很方便。也是给应用练手,从外围系统开始使用MongoDB。用在一些第三方信息的获取或者抓取,因为MongoDB的schema-less,所有格式灵活,不用为了各种格式不一样的信息专门设计统一的格式,极大得减少开发的工作。案例2mongodb之前有用过,主要用来存储一些监... 阅读全文
posted @ 2020-05-27 11:07 float123 阅读(266) 评论(0) 推荐(0) 编辑
摘要:概述mongodb 被用到越来越多的场景,本篇为入门篇。monogodb 主要特点高性能丰富的查询条件高可用水平扩展多种存储引擎基本模型基本数据模型用两个图片来看一下和关系型数据库的对照_id 主键,MongoDB 默认使用一个_id 字段来保证文档的唯一性。reference 引用,勉强可以对应于 外键(foreign key) 的概念,之所以是勉强是因为 reference 并没有实现任何外... 阅读全文
posted @ 2020-05-26 17:13 float123 阅读(268) 评论(0) 推荐(0) 编辑
摘要:概述shardingsphere-proxy 使用代理,什么意思呢,就是我只要发送给代理例如,select * from t_order where id = 1;的查询,而实际 shardingsphere-proxy 执行的分库分表中的 :select * from t_order_0 where id = 1;select * from t_order_1 where id = 1;然后框架... 阅读全文
posted @ 2020-05-11 16:56 float123 阅读(7125) 评论(0) 推荐(0) 编辑
摘要:## 概述 MySQL 默认是异步复制,半复制是为了数据一致性,防止异步同步数据过程中,事务丢失。同步复制的话可以保证数据的一致性,数据不丢失可以回滚,但是响应慢,master 必须等待 slave 返回的ack响应才算完整地完成事务,而异步复制则有可能出现数据不一致的问题,半复制处于异步复制和同步 阅读全文
posted @ 2020-05-07 16:51 float123 阅读(294) 评论(0) 推荐(0) 编辑
摘要:## 概述 在查找数据库分库分表的资料的时候看到了这一个回答,[为什么几乎所有的开源数据库中间件都是国内公司开源的?并且几乎都停止了更新?](https://www.zhihu.com/question/352256403) 知道了当数据量大的时候最直接彻底的解决方案就是分布式数据库了,但是由于技术 阅读全文
posted @ 2020-03-25 15:27 float123 阅读(243) 评论(0) 推荐(0) 编辑
摘要:## 概述 ## 备份 根据方法分 : - 热备 - 冷备 - 温备 根据文件内容分 : - 逻辑备份 - 裸文件备份 按照备份数据库内容来分,备份分为 : - 完全备份 - 增量备份 - 日志备份 这里讲一下热备 ## 热备 即是不用停机也可以备份。ibbackup 是InnnoDB 存储引擎官方 阅读全文
posted @ 2020-03-19 13:32 float123 阅读(108) 评论(0) 推荐(0) 编辑
摘要:## 问题 我们都知道MySQL中有锁,那么下面语句是运用了什么锁呢 ``` select * from table where id = ? select * from table where id 100 ,之前 x + y SHOW SESSION VARIABLE LIKE 'tx_isol 阅读全文
posted @ 2020-03-02 14:49 float123 阅读(337) 评论(0) 推荐(0) 编辑
摘要:## 复习 Innodb关键的特性 - 插入缓存 - 两次写 - 异步IO - 刷新邻近页 - 自适应哈希索引 ## 概述 double write 的主要的作用是保证写入数据库文件的可靠性。通俗地说就是一份数据写两个地方,当出现异常的时候,拿备用的一份进行恢复,于是这就有个问题了,这样写不会很慢吗 阅读全文
posted @ 2020-02-27 11:25 float123 阅读(919) 评论(0) 推荐(0) 编辑
摘要:## 概述 该篇文章主要阐述一个例子(例子来自参考资料,侵删),然后总结今天相关的知识点。 ## 例子 (例子来自参考文章,非原创) 创建表并插入数据,并执行查询 ``` CREATE TABLE `t` ( `id` int(11) NOT NULL, `a` int(11) DEFAULT NU 阅读全文
posted @ 2020-02-24 10:20 float123 阅读(237) 评论(0) 推荐(0) 编辑
摘要:## 表空洞的产生 ### 删除某个行数据 或删除某个页 如下图所示,这个删除过程只是标记了某行的位置为删除,假如此时在300与600之间插入了一行数据,那么 ![1297993-20200220100041065-1490459034.png](https://img2018.cnblogs.co 阅读全文
posted @ 2020-02-21 14:01 float123 阅读(341) 评论(0) 推荐(0) 编辑
摘要:文章部分总结描述来自参考文章,属于半原创。 ## 概述 文章将会介绍 change buffer 相关的知识点 ### 查看 MySQL InnoDB 状态的命令 ``` SHOW ENGINE INNODB STATUS; ``` 这个命令可以查看带InnoDB 引擎当前线程和 buffer po 阅读全文
posted @ 2020-02-21 13:55 float123 阅读(489) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示