数据库
文章平均质量分 90
生而知之者为妖
这个作者很懒,什么都没留下…
展开
-
CentOS8服务器安装Mysql并设置远程连接
过程安装1、通过以下命令,使用最新的包管理器安装MySQL(安装过程中一直yes/y即可)sudo dnf install @mysql2、设置MySQL自动启动sudo systemctl enable --now mysqld3、检查MySQL是否在运行sudo systemctl status mysqld结果:(如图显示active,则表明MySQL已经安装成功且正在运行,接下来进行安全性、远程连接等配置)安全性配置4、运行mysql_secure_installati原创 2020-05-09 09:03:17 · 2469 阅读 · 1 评论 -
Redis事务(Redis事务与普通关系型数据库事务的区别)
前言Redis作为非关系型数据库中的一种,因为其基于内存、单线程、支持持久化、拥有着高速的读写速度而又支持多种数据类型、支持原生集群等特点而被广泛使用。这篇博文主要讨论下Redis事务与关系型数据库(比如MySQL)事务之间的区别。Redis事务Redis事务与MySQL事务一样,一次事务可以执行多条命令,在事务执行时命令按顺序执行。由MULTI命令标志着事务的开始,EXEC命令标志着开始执...原创 2020-04-26 13:25:23 · 1531 阅读 · 4 评论 -
MySQL大表优化方案(当数据库表数据量过大造成CRUD操作性能很差时该如何优化)
前言当MySQL单表记录数过大时,增删改查性能都会急剧下降。可以通过单表优化、限定数据的范围、表分区、读写分离等方法进行优化。这篇文章主要内容是转载的博主manong,原文传送门 ,然后自己进行了一些修改。单表优化这块方法不是太全可以翻阅我的其它相关博文-----《MySQL高性能优化规范(这应该是我见过写的最好的优化规范建议了)》和《解析SQL语句执行速度慢的原因(SQL性能优化)》单表优化...转载 2020-04-17 16:42:29 · 3808 阅读 · 1 评论 -
InnoDB的MVCC实现原理(InnoDB如何实现MVCC以及MVCC的工作机制)
MVCC(多版本并发控制)使用锁和锁协议来实现相应的隔离级别来进行并发控制,味道虽好但因为锁会造成事务阻塞,导致并发性能会受到一定的影响。而多版本并发控制使得对同一行记录做读写的事务之间不用相互阻塞等待(写写还是要阻塞等待,因为事务对数据进行更新时会加上排他锁),提高了事务的并发能力,可以认为MVCC是一种解决读写阻塞等待的行级锁。MVCC的一些重要特性(1)MVCC只支持RC(读取已提交)...原创 2020-04-16 21:45:28 · 7085 阅读 · 2 评论 -
解析数据库锁协议和InnoDB锁机制(全面解析行级锁、表级锁、排他锁、共享锁、悲观锁、乐观锁等常用锁)
前言数据库通过锁以及锁协议来进行并发控制,解决并发事务带来的问题,本篇博文主要是解析数据库的锁协议和锁机制。锁协议在介绍锁之前,我先介绍下锁协议,锁协议规定了何时加锁、释放锁的规则,不同的规则可用于实现不同的隔离级别,解决不同的并发事务问题。一级封锁协议:更新数据前需要先加X锁,直到事务结束才释放X锁,读数据是不需要加S锁。所以只能解决第一类更新丢失问题,不能解决脏读和不可重复读等问题。...原创 2020-04-16 16:53:04 · 4076 阅读 · 0 评论 -
解析事务隔离(事务隔离是如何解决脏读、幻读、不可重复读等问题)
前言锁机制和索引是数据库两块极其重要的知识点,也是面试中面试官最爱问的两个部分。前面的文章已经对索引知识有了一个较为全面的解析,这篇文章主要从并发事务的角度出发,解析并发事务带来的问题,以及事务隔离是如何解决并发事务带来的问题。事务事务存在意义是保证数据的一致性。事务保证了事务内的一系列操作,要不都执行,要不都不执行。例如A账号给B账户转账10000,则A账号减去10000,B账号增加100...原创 2020-04-13 20:17:56 · 1696 阅读 · 1 评论 -
解析SQL语句执行速度慢的原因(SQL性能优化)
前言本篇文章主要是通过数据库锁机制和索引来分析SQL语句执行速度慢的原因。偶尔执行速度慢如果一条SQL语句绝大多数时候执行速度正常,偶尔执行慢。那么可能是因为产生了锁竞争,也可能是数据库为了保持数据一致性,在将数据从日志中刷新到磁盘上。锁竞争锁因为事务并发会带来脏读、修改丢失、不可重复读、幻读等问题,所以数据库需要使用锁机制保证数据一致性。数据库常用的锁级别有行级锁、页级锁、表级锁,因...原创 2020-04-06 16:22:09 · 5581 阅读 · 0 评论 -
MySQL高性能优化规范(这应该是我见过写的最好的优化规范建议了)
前言这篇文章几乎所有内容都是转载,转载的作者是听风,原文地址: https://www.cnblogs.com/huchong/p/10219318.html。然后自己在里面添加修改了些内容,并且这篇文章内涉及到了聚集索引、覆盖所有、冗余索引等知识,若不是很了解,可以看我的另外一篇博文:《全面解析数据库索引(数据库索引种类大盘点)》)数据库命令规范•所有数据库对象名称必须使用小写字母并用下划...转载 2020-04-05 23:08:41 · 821 阅读 · 0 评论 -
全面解析数据库索引(数据库索引种类大盘点)
前言前面两篇文章 《解析B+树比B树更加适合做数据库索引的原因 》 和《从底层解析B+索引提高查询速度的原因》是从数据结构的角度分析了B+索引,并分别介绍了B+索引在两个主流存储引擎InnoDB和MyISAM中的实现。而这篇文章是全面的介绍索引,介绍使用索引的利弊、索引使用时需要注意什么、索引的种类等等。索引的定义索引是数据库中用来加快检索速度的数据结构,常用的索引有B+索引和hash索引以...原创 2020-04-04 21:37:15 · 2805 阅读 · 0 评论 -
从底层解析B+索引提高查询速度的原因
前言我的上篇文章《解析B+树比B树更加适合做数据库索引的原因》介绍了为什么B+树更适合做索引,并以InnoDB和MyISAM存储引擎介绍了聚集索引和非聚集索引的区别。Mysql默认的存储引擎是InnoDB,因此此篇文章主要以InnoDB的数据页结构以及数据页结构之间的连接方式和查找过程来说明B+索引提高查询速度的原因。数据页结构Mysql进行数据存储的基本结构是数据页(也可称作块),一页的大...原创 2020-04-03 22:08:59 · 1435 阅读 · 0 评论 -
解析B+树比B树更加适合做数据库索引的原因
前言数据库常用的索引有Hash索引、BTree索引 、全文索引。Hash索引虽然等值查询会很快(单条记录查询),但其无法进行有效的范围查询,而范围查询是数据库的常用操作,因此很多存储引擎更倾向于使用BTree索引,例如MyISAM与InnoDB 都是默认使用BTree索引(它们的一个区别是InnoDB使用聚集索引,而MyISAM使用非聚集索引)。本文主要是讨论B+树与B树结构差不多,为什么会用B...原创 2020-03-30 21:33:29 · 2551 阅读 · 0 评论