
MySQL
文章平均质量分 74
想当程序媛的秀妍
这个作者很懒,什么都没留下…
展开
-
数据库(八)--SQL执行过程详解
MySQL驱动在系统和 MySQL 进行交互之前,MySQL驱动在底层帮我们做了对数据库的连接,我们只需要发送 SQL 语句就可以执行 CRUD 了,只有建立了连接,才能有后面的交互。**一次 SQL 请求就会建立一个连接,多个请求就会建立多个连接。**系统中肯定不是一个人在使用的,换句话说肯定是存在多个请求同时去争抢连接的情况。我们的 web 系统一般都是部署在 tomcat 容器中的,而 tomcat 是可以并发处理多个请求的,这就会导致多个请求会去建立多个连接,然后使用完再都去关闭,如下图所转载 2021-05-26 16:03:52 · 1933 阅读 · 1 评论 -
数据库(七)--主从复制和读写分离
主从复制主要涉及三个线程:binlog 线程、I/O 线程和 SQL 线程。binlog线程:负责将主服务器上的数据更改写入二进制日志中。I/O线程:负责从主服务器上读取二进制日志,并切入从服务器的中继日志中。SQL线程:负责读取中继日志并重放其中的SQL语句。读写分离主服务器处理写操作以及实时性要求比较高的读操作,而从服务器处理读操作。读写分离能提高性能的原因在于:主从服务器负责各自的读和写,极大程度缓解了锁的争用;从服务器可以使用 MyISAM,提升查询性能以及节约系统开销;原创 2021-05-26 14:43:53 · 159 阅读 · 0 评论 -
数据库(六)--分表分库
水平切分水平切分又称为Sharding,它是将同一个表中的记录拆分成多个结构相同的表中。当一个表的数据不断增多时,Sharding是必然的选择,他可以将数据分布到集群的不同节点上,从而缓存单个数据库的压力。垂直切分将一张表按列切分成多个表,通常是按照列的关系密集程度进行切分,也可以利用垂直切分将经常被使用的列和不经常被使用的列切分到不同的表中。在数据库的层面使用垂直切分将按数据库中表的密集程度部署到不同的库中,例如将原来的电商数据库垂直切分成商品数据库、用户数据库等Sharding策略哈原创 2021-05-26 14:27:38 · 150 阅读 · 0 评论 -
数据库(五)--性能优化
使用Explain进行分析Explain用来分析SELECT查询语句,开发人员可以通过分析Explain结果来优化查询语句。比较重要的字段有:select_type:查询类型,有简单查询、联合查询、子查询等。key:使用的索引。rows:扫描的行数。优化数据访问减少请求的数据量返回必要的列:最好不要使用SELECT *语句。只返回必要的行:使用LIMIT语句来限制返回的数据。缓存重复查询的数据:使用缓存可以避免在数据库中进行查询,特别在要查询的数据经常被重复查询时,缓存带来的查询性转载 2021-05-26 14:09:27 · 116 阅读 · 0 评论 -
数据库(四)--索引
B+Tree原理数据结构B Tree指的是平衡树,是一棵查找树,并且所有叶子节点位于同一层。B+ Tree是基于B Tree和叶子节点顺序访问指针进行实现,它具有B Tree的平衡性,并且通过顺序访问指针来提高区间查询的性能。在B+树中,一个节点中的key从左到右非递减排列。操作进行查找操作时,首先在根节点进行二分查找,找到一个key所在的指针,然后递归的在指针所指向的节点进行查找。直到查找到叶子节点,然后在叶子结点上进行二分查找,找出key所对应的data。插入删除操作记录会破坏平衡树的平转载 2021-05-26 13:59:31 · 130 阅读 · 0 评论 -
数据库(三)--MySQL存储引擎
InnoDB是MySQL默认的事务型存储引擎,只有在需要它不支持的特性的时候,才考虑使用其他的存储引擎。实现了四个标准的隔离级别,默认级别是可重复读,在可重复读的隔离级别下,通过多版本并发控制(MVCC)+间隙锁(Next-Key Locking)防止幻影读。主索引是聚簇索引,在索引中保存了数据,从而避免直接读取磁盘,因此对查询性能有很大的提升。内部做了很多优化,包括从磁盘读取数据时采用可预测性读、能够加快读操作并且自动创建的自适应哈希索引、能够加速插入操作的插入缓冲区等。支持真正的在线热备份。其转载 2021-05-26 13:09:02 · 76 阅读 · 0 评论 -
数据库(二)--SQL语法基础
文章目录数据库的创建与使用创建表修改表添加列删除列删除表插入普通插入插入检索出来的数据将一个表的内容插入到一个新表更新删除查询DISTINCTLIMIT排序过滤通配符计算字段函数文本处理日期和时间处理数值处理分组子查询连接内连接自连接自然连接外连接组合查询视图存储过程游标触发器事务管理权限管理创建账户修改账户名删除账户查看权限授予权限删除权限更改密码字符集模式定义了数据如何存储、存储什么样的数据以及数据如何分解等信息,数据库和表都有模式。数据库的创建与使用CREATE DATABASE test;原创 2021-05-25 20:42:37 · 176 阅读 · 1 评论 -
数据库(一)--数据库系统的核心知识点
文章目录事务ACIDAUTOCOMMIT并发一致性丢失修改读脏数据不可重复读幻影读封锁封锁粒度封锁类型封锁协议MySQL隐式与显示锁定隔离级别未提交读提交读可重复读可串行化多版本并发控制版本号隐藏的列Undo日志实现过程1. SELECT2. INSERT3. DELETE4. UPDATE快照读和当前读快照读当前读Next-Key LocksRecord LocksGap LocksNext-Key Locks事务事务是满足ACID特性的一组操作,可以通过commit提交一个事务,也可以使用Roll原创 2021-05-25 17:21:40 · 1139 阅读 · 0 评论