
数据库
文章平均质量分 82
MySQL, Oracle, PostgreSQL, MongoDB
redstone618
人因为梦想而伟大,机遇永远属于那些有准备、立即行动并能坚持到底的人!
展开
-
MySQL事务的四大特性和隔离级别
一、事务的四大特性(ACID)1、原子性(Atomicity)原子性是指事务包含的一系列操作要么全部成功,要么全部回滚,不存在部分成功或者部分回滚,是一个不可分割的操作整体。2、一致性(Consistency)一致性是可以理解为事务对数据完整性约束的遵循,这些约束可能包括主键约束、唯一索引约束、外键约束等等。事务执行前后,数据都是合法的状态,不会违背任何的数据完整性就拿转账来说,A和B加起来有5000块钱,不管A和B如何转账,转几次账,A和B加起来的钱永远都是5000块。总之,可以理解为:一致性原创 2022-03-30 17:00:20 · 2708 阅读 · 0 评论 -
【MySQL】三大日志-binlog、redo log和undo log
日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。作为开发,我们重点需要关注的是二进制日志(binlog)和事务日志(包括redo log和undo log),本文接下来会详细介绍这三种日志。1、binlogbinlog用于记录数据库执行的写入性操作(不包括查询)信息,以二进制的形式保存在磁盘中。binlog是mysql的逻辑日志,并且由Server层进行记录,使用任何存储引擎的mysql数据库都会记原创 2022-01-18 17:13:55 · 3919 阅读 · 8 评论 -
【MySQL】Innodb三大特性之(自适应hash索引)
自适应hash索引二级目录一、索引的资源消耗分析二、自适应hash索引原理三、监控与关闭二级目录一、索引的资源消耗分析1、索引三大特点 1、小:只在一个到多个列建立索引 2、有序:可以快速定位终点 3、有棵树:可以定位起点,树高一般小于等于32、索引的资源消耗点 1、树的高度,顺序访问索引的数据页,索引就是在列上建立的,数据量非常小,在内存中; 2、数据之间跳着访问 1、索引往表上跳,可能需要访问表的数据页很多; 2、通过索引访问表,主键列和索引的有序原创 2022-01-16 18:10:59 · 3844 阅读 · 0 评论 -
【MySQL】Innodb三大特性之两次写(double write)
double write一、脏页刷盘风险二、doublewrite:两次写三、doublewrite的副作用一、脏页刷盘风险关于IO的最小单位:1、数据库IO的最小单位是16K(MySQL默认,oracle是8K)2、文件系统IO的最小单位是4K(也有1K的)3、磁盘IO的最小单位是512字节因此,存在IO写入导致page损坏的风险:二、doublewrite:两次写提高innodb的可靠性,用来解决部分写失败(partial page write页断裂)。1、Double write解原创 2022-01-16 18:08:44 · 3260 阅读 · 0 评论 -
【MySQL】Innodb三大特性之插入缓冲(insert buffer)
insert buffer一、什么是insert buffer二、insert buffer的原理三、insert buffer的内部实现四、insert buffer的缺点五、查看insert buffer一、什么是insert bufferinsert buffer是一种特殊的数据结构(B+ tree)并不是缓存的一部分,而是物理页,当受影响的索引页不在buffer pool时缓存 secondary index pages的变化,当buffer page读入buffer pool时,进行合并操作,原创 2022-01-15 10:06:35 · 3741 阅读 · 0 评论 -
MySQL中profile的使用
mysql官网定义The SHOW PROFILE and SHOW PROFILES statements display profiling information that indicates resource usage for statements executed during the course of the current session.简单的说,当前会话资源的消耗情况。注意:show profile和show Profiles都是不建议使用的,在mysql后期的版本中可能会被删原创 2022-01-13 14:24:19 · 471 阅读 · 0 评论 -
数据库默认端口
一、常见数据库默认端口1,关系型数据库Oracle — 1521MySQL — 3306SQL Server — 1433Sybase — 5000DB2 — 5000PostgreSQL — 54322,NOSQL数据库MongoDB — 27017Redis — 6379Memcached — 112113, MQRabbitMQ5672 --client端通信口15672 – 管理界面ui端口25672 – server间内部通信口Kafka — 9092zooke原创 2022-01-13 13:32:20 · 3394 阅读 · 0 评论 -
MySQL存储引擎的介绍
存储引擎的介绍二级目录存储引擎1、InnoDB存储引擎2、MyISAM存储引擎3、MEMORY存储引擎4、Archive存储引擎存储引擎的选择二级目录存储引擎存储引擎,即表类型(table_type),用户可以根据应用的需求选择如何来存储数据、索引、是否使用事务等。选择合适的存储引擎往往能够有效的提高数据库的性能和数据的访问效率,另外一个数据库中的多个表可以使用不同引擎的组合以满足各种性能和实际需求。MySQL支持很多存储引擎,包括MyISAM、InnoDB、BDB、MEMORY、MERGE、EXA原创 2022-01-12 11:23:30 · 271 阅读 · 0 评论 -
MySQL分库分表原理
这里写目录标题前言垂直拆分水平拆分分库分表后引入的问题分库分表中间件前言在互联网还未崛起的时代,我们的传统应用都有这样一个特点:访问量、数据量都比较小,单库单表都完全可以支撑整个业务。随着互联网的发展和用户规模的迅速扩大,对系统的要求也越来越高。因此传统的MySQL单库单表架构的性能问题就暴露出来了。而有下面几个因素会影响数据库性能:数据量MySQL单库数据量在5000万以内性能比较好,超过阈值后性能会随着数据量的增大而变弱。MySQL单表的数据量是500w-1000w之间性能比较好,超过100原创 2021-12-18 17:09:49 · 359 阅读 · 0 评论 -
MySQL分库分表简单介绍
分表、分库一、前言二、分片(类似分库)三、Scale Out/Scale Up 和 垂直切分/水平拆分四、分表和分区五、分表与分库六、分区与分片区别一、前言数据库的数据量达到一定程度之后,为避免带来系统性能上的瓶颈。需要进行数据的处理,采用的手段是分区、分片、分库、分表。二、分片(类似分库)分片是把数据库横向扩展(Scale Out)到多个物理节点上的一种有效的方式,其主要目的是为突破单节点数据库服务器的 I/O 能力限制,解决数据库扩展性问题。Shard这个词的意思是“碎片”。如果将一个数据库当作原创 2021-12-18 13:27:07 · 298 阅读 · 0 评论 -
MySQL索引类型(按逻辑角度分类)
MySQL目前主要有的索引类型为:普通索引、唯一索引、主键索引、组合索引、全文索引。下面本篇文章就来给大家介绍一下这些MySQL索引,希望对你们有所帮助。通过给字段添加索引可以提高数据的读取速度,提高项目的并发能力和抗压能力。索引优化时mysql中的一种优化方式。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。下面我们来看看MySQL目前主要有的索引类型:1、普通索引普通索引是最基本的索引,它没有任何限制,值可以为空;仅加速查询。可以通过以下几种方式来创建或删除:1)、直接创原创 2021-12-16 11:06:21 · 1121 阅读 · 0 评论 -
MySQL 数据库主从同步原理
MySQL的Replication(英文为复制)是一个多MySQL数据库做主从同步的方案,特点是异步复制,广泛用在各种对MySQL有更高性能、更高可靠性要求的场合。与之对应的是另一个同步技术是MySQL Cluster,但因为MySQL Cluster配置比较复杂,所以使用者较少。MySQL的 Replication是一个异步复制的过程(mysql5.1.7以上版本分为异步复制和半同步两种模式),它是从一个Mysql instance(instance英文为实例)(我们称之为Master)复制到另一个My原创 2021-12-15 16:12:02 · 1273 阅读 · 0 评论 -
MySQL 索引底层原理
Mysql 作为互联网中非常热门的数据库,其底层的存储引擎和数据检索引擎的设计非常重要,尤其是 Mysql 数据的存储形式以及索引的设计,决定了 Mysql 整体的数据检索性能。我们知道,索引的作用是做数据的快速检索,而快速检索的实现的本质是数据结构。通过不同数据结构的选择,实现各种数据快速检索。在数据库中,高效的查找算法是非常重要的,因为数据库中存储了大量数据,一个高效的索引能节省巨大的时间。比如下面这个数据表,如果 Mysql 没有实现索引算法,那么查找 id=7 这个数据,那么只能采取暴力顺序遍历查原创 2021-12-14 21:32:27 · 410 阅读 · 0 评论 -
MySQL之MVCC实现原理
什么是MVCCMVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。我们知道,一般情况下我们使用mysql数据库的时候使用的是Innodb存储引擎,Innodb存储引擎是支持事务的,那么当多线程同时执行事务的时候,可能会出现并发问题。这个时候需要一个能够控制并发的方法,MVCC就起到了这个作用。Mysql的锁和事务隔离级别在理解MVCC机制的原理之前,原创 2021-12-12 17:17:51 · 595 阅读 · 0 评论 -
数据库隔离级别
数据库事务的四大特性以及事务的隔离级别 本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变原创 2021-11-07 22:39:18 · 116 阅读 · 0 评论