MySQL redo log、binlog、undo log 区别与作用

日志系统主要有redo log(重做日志)和binlog(归档日志)。redo log是InnoDB存储引擎层的日志,binlog是MySQL Server层记录的日志, 两者都是记录了某些操作的日志(不是所有)自然有些重复(但两者记录的格式不同)。

SQL执行过慢,如何排查以及调优

导致SQL执行慢的原因 硬件问题。如网络速度慢,内存不足,I/O吞吐量小,磁盘空间满了等。 没有索引或者索引失效。(一般在互联网公司,DBA会在半夜把表锁了,重新建立一遍索引,因为当你删除某个数据的时候,索引的树结构就不完整了。所以互联网公司的数据做的是假删除,一是为了做数据分析,二是为了不破坏索引 ) 数据过多(分库分表) 服务器调优及各个参数设置(调整my.cnf) 查询出的...

聊聊对关系型数据库和非关系型数据库的理解

关系型数据库关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织 优点 易于维护:都是使用表结构,格式一致; 使用方便:SQL语言通用,可用于复杂查询; 复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。 缺点 读写性能比较差,尤其是海量数据的高效率读写; 固定的表结构,灵活度稍欠; 高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈...

broadcast hash join和sort merge join

Join背景介绍Join是数据库查询永远绕不开的话题,传统查询SQL技术总体可以分为简单操作(过滤操作-where、排序操作-limit等),聚合操作-groupby以及Join操作等。其中Join操作是最复杂、代价最大的操作类型,也是OLAP场景中使用相对较多的操作。因此很有必要对其进行深入研究。 另外,从业务层面来讲,用户在数仓建设的时候也会涉及Join使用的问题。通常情况下,数据仓...

B树与B+树

B树简介 一种二叉搜索树。 除根节点外的所有非叶节点至少含有(M/2(向上取整)-1)个关键字,每个节点最多有M-1个关键字,并且以升序排列。所以M阶B树的除根节点外的所有非叶节点的关键字取值区间为[M/2-1(向上取整),M-1]。 每个节点最多有M-1个关键字。 动图演示 B+树简介 有n棵子树的非叶子结点中含有n个关键字(b树是n-1个),这些关键字不保存数据,只用来索引,...

MySQL索引类型

MySQL索引类型介绍

B+树存储数据计算

B+树存储数据量计算…

初识BufferPoll

Buffer Pool是什么? 是一块内存区域,当数据库操作数据的时候,把硬盘上的数据加载到buffer pool,不直接和硬盘打交道,操作的是buffer pool里面的数据 数据库的增删改查都是在buffer pool上进行,和undo log/redo log/redo log buffer/binlog一起使用,后续会把数据刷到硬盘上 默认大小 128M 数据页 磁盘文件被分成...

MySQL中SQL是如何执行的?

简单分析sql的执行过程…

MySQL什么时候适合建索引,什么时候不适合建索引?

1、什么是索引(本质:数据结构)索引是帮助MySQL高效获取数据的数据结构。 2、优势 提高数据检索的效率,降低数据库IO成本 通过索引对数据进行排序,降低数据排序的成本,降低了CPU的消耗 3、劣势  降低更新表的速度,如对表进行update 、delete、insert等操作时,MySQL不仅要保存数据,还要保存一下索引文件每次添加了索引列的字段,都会调整因为更新带来的键值变化...