MySQL
文章平均质量分 51
MySQL
小海海不怕困难
这个作者很懒,什么都没留下…
展开
-
MySQL中的free链表,flush链表,LRU链表
你在执行增删改的时候,如果发现数据页没缓存,那么必然会基于free链表找到一个空闲的缓存页,然后读取到缓存页里去,但是如果已经缓存了,那么下一次就必然会直接使用缓存页。反正不管怎么样,你要更新的数据页都会在Buffer Pool的缓存页里,供你在内存中直接执行增删改的操作。接着你肯定会去更新Buffer Pool的缓存页中的数据,此时一旦你更新了缓存页中的数据,那么缓存页里的数据和磁盘上的数据页里的数据,是不是就不一致了?这个时候,我们就说缓存页是脏数据,脏页。原创 2023-08-28 15:05:37 · 12981 阅读 · 0 评论 -
MySQL中的Buffer Pool
一、概述一、概述Buffer Pool是数据库的一个内存组件,里面缓存了磁盘上的真实数据,然后我们的Java系统对数据库执行的增删改操作,其实主要就是对这个内存数据结构中的缓存数据执行的。我们先来看一下下面的图,里面就画了数据库中的Buffer Pool内存组件。原创 2023-08-27 17:05:37 · 12195 阅读 · 0 评论 -
MySQL执行更新的流程
引擎要执行更新语句的时候 ,比如对“id=10”这一行数据,他其实会先将“id=10”这一行数据看看是否在缓冲池里,如果不在的话,那么会直接从磁盘里加载到缓冲池里来,而且接着还会对这行记录加独占锁。原创 2023-08-27 16:30:56 · 12803 阅读 · 0 评论 -
MySQL的执行原理
连接的本质就是把各个连接表中的记录都取出来依次匹配的组合加入结果集并返回给用户。所以我们把e1和e2两个表连接起来的过程如下图所示:这个过程看起来就是把e1表的记录和e2的记录连起来组成新的更大的记录,所以这个查询过程称之为连接查询。连接查询的结果集中包含一个表中的每一条记录与另一个表中的每一条记录相互匹配的组合,像这样的结果集就可以称之为笛卡尔积。因为表e1中有3条记录,表e2中也有3条记录,所以这两个表连接之后的笛卡尔积就有3×3=9行记录。原创 2023-06-17 10:52:55 · 12615 阅读 · 1 评论 -
MySQL中的锁
IS、IX锁是表级锁,它们的提出仅仅为了在之后加表级别的S锁和X锁时可以快速判断表中的记录是否被上锁,以避免用遍历的方式来查看表中有没有上锁的记录。就是说其实IS锁和IX锁是兼容的,IX锁和IX锁是兼容的。我们画个表来看一下。原创 2023-06-15 15:17:17 · 12407 阅读 · 0 评论 -
事务底层与高可用原理
在事务的实现机制上,MySQL采用的是WAL(Write-ahead logging,预写式日志)机制来实现的。就是所有的修改都先被写入到日志中,然后再被应用到系统中。通常包含redo和undo两部分信息。redo log称为重做日志,每当有操作时,在数据变更之前将操作写入redo log,这样当发生掉电之类的情况时系统可以在重启后继续操作。undo log称为撤销日志,当一些变更执行到一半无法完成时,可以根据撤销日志恢复到变更之间的状态。原创 2023-06-15 06:55:44 · 11646 阅读 · 0 评论 -
MySQL体系架构
可以看出MySQL是由组成。由于每次建立建立需要消耗很多时间,连接池的作用就是将这些连接缓存下来,下次可以直接用已经建立好的连接,提升服务器性能。系统管理和控制工具,例如备份恢复、Mysql复制、集群等接受用户的SQL命令,并且返回用户需要查询的结果。比如select ... from就是调用SQL接口SQL命令传递到解析器的时候会被解析器验证和解析。解析器主要功能:1、将SQL语句分解成数据结构,后续步骤的传递和处理就是基于这个结构的。原创 2023-06-14 15:46:16 · 14007 阅读 · 0 评论 -
MySQL事务
从上边的描述中我们可以看出来,所谓的MVCC(Multi-Version Concurrency Control ,多版本并发控制)指的就是在使用READ COMMITTD、REPEATABLE READ这两种隔离级别的事务在执行普通的SELECT操作时访问记录的版本链的过程,这样子可以使不同事务的读-写、写-读操作并发执行,从而提升系统性能。原创 2023-06-14 11:40:32 · 13802 阅读 · 0 评论 -
事务和事务的隔离级别
事务是数据库管理系统(DBMS)执行过程中的一个逻辑单位(不可再进行分割),由一个有限的数据库操作序列构成(多个DML语句,select语句不包含事务),要不全部成功,要不全部不成功。A 给B 要划钱,A 的账户-1000元, B 的账户就要+1000元,这两个update 语句必须作为一个整体来执行,不然A 扣钱了,B 没有加钱这种情况就是错误的。那么事务就可以保证A 、B 账户的变动要么全部一起发生,要么全部一起不发生。原创 2023-06-14 07:05:16 · 11823 阅读 · 0 评论 -
MySQL性能优化:慢查询优化
这一点,也是针对联合索引来说的,前面我们反复强调过,所有记录都是按照索引列的值从小到大的顺序排好序的,而联合索引则是按创建索引时的顺序进行分组排序。由于B+树中的数据页和记录是先按insert_time列排序的,所以我们上边的查询过程其实是这样的:找到insert_time值为'2021-03-22 18:23:42' 的记录。找到insert_timee值为'2021-03-22 18:35:00'的记录。原创 2023-06-13 21:27:53 · 14801 阅读 · 0 评论 -
MySQL性能优化:索引优化
对于一个查询而言,三星索引可能是其最好的索引。满足的条件如下: 索引将相关的记录放到一起则获得一星 如果索引中的数据顺序和查找中的排列顺序一致则获得二星(排序星) 如果索引中的列包含了查询中需要的全部列则获得三星(宽索引星)原创 2023-06-11 21:48:39 · 11975 阅读 · 0 评论 -
create_time,update_time无法自动更新
create_time,update_time无法自动更新原创 2022-05-12 15:04:14 · 11928 阅读 · 0 评论 -
java.sql.SQLException Access denied for user ‘Administrator‘@‘localhost‘ (using password YES)
java.sql.SQLException Access denied for user 'Administrator'@'localhost' (using password YES)原创 2022-04-09 19:37:22 · 13081 阅读 · 0 评论 -
Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘experience_openne
Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column 'experience_openness' in 'field list'原创 2022-05-29 09:57:31 · 17355 阅读 · 0 评论 -
Error updating database. Cause java.sql.SQLException Incorrect integer value for column ‘id’ at row
Error updating database. Cause java.sql.SQLException Incorrect integer value for column ‘id’ at row 1原创 2022-04-23 15:36:32 · 13343 阅读 · 0 评论 -
Java面试题系列——JavaSE面试题(MySQL三)
Java面试题系列——JavaSE面试题(MySQL三)原创 2022-06-12 17:54:32 · 11639 阅读 · 0 评论 -
mysql查询当前时间,一天内,一周,一个月内的sql语句
mysql查询当前时间,一天内,一周,一个月内的sql语句原创 2022-06-16 11:39:47 · 13699 阅读 · 0 评论 -
Java面试题系列——JavaSE面试题(MySQL一)
Java面试题系列——JavaSE面试题(MySQL一)原创 2022-06-12 11:06:12 · 11851 阅读 · 0 评论 -
Java面试题系列——JavaSE面试题(MySQL二)
Java面试题系列——JavaSE面试题(MySQL二)原创 2022-06-12 15:12:21 · 11722 阅读 · 0 评论 -
Mysql自动自增数据游标过大,MYSQL自增主键ID重置
Mysql自动自增数据游标过大,MYSQL自增主键ID重置原创 2022-05-12 12:57:08 · 11989 阅读 · 0 评论 -
MySQL系列——DQL_函数_单行函数
MySQL系列——DQL_函数_单行函数原创 2022-04-09 20:07:25 · 11865 阅读 · 0 评论 -
MySQL系列——DQL_简单查询与模糊查询
简单查询:#一、基础查询#1、查询全部select*from student;#2、查询指定列表select studentname from student;#二、算术表达式查询,常见+-*/%select id*2 from student;#三、字段别名查询#1、用asselect id*2 as doubles from student;#2、不用asselect id*2 doubles from student;#四、去重复查询select disti原创 2022-04-20 13:46:45 · 11514 阅读 · 0 评论 -
MySQL系列——DQL_子查询
MySQL系列——DQL_子查询原创 2022-04-20 13:54:49 · 11548 阅读 · 0 评论 -
MySQL系列——DQL语句
MySQL系列——DQL语句原创 2022-04-09 20:05:37 · 11515 阅读 · 0 评论 -
MySQL系列——DDL语句
MySQL系列——DDL语句原创 2022-04-09 20:02:22 · 11276 阅读 · 0 评论 -
MySQL系列——DQL_视图与索引
MySQL系列——DQL_视图与索引原创 2022-04-20 13:49:04 · 11878 阅读 · 0 评论 -
MySQL系列——DQL_单表查询_分页查询与分组查询
MySQL系列——DQL_单表查询_分页查询与分组查询原创 2022-04-20 13:40:25 · 11483 阅读 · 0 评论 -
MySQL系列——DQL_存储过程
MySQL系列——DQL_存储过程原创 2022-04-10 15:37:25 · 11541 阅读 · 0 评论 -
MySQL系列——DQL_where条件查询
MySQL系列——DQL_where条件查询原创 2022-04-09 20:08:52 · 11728 阅读 · 0 评论 -
MySQL系列——DML语句
MySQL系列——DML语句原创 2022-04-09 20:03:55 · 11845 阅读 · 0 评论 -
MySQL系列——DCL语句
#一、创建用户#a、创建用户#create user 'username'@'host' identified by 'password';-- create user 创建用户的名称-- username 定义用户名-- host ip地址 1. localhost 本机 2. % 所有的能连 3.192.168.23.123 具体的ip地址-- identified by 创建密码-- password 设置密码create user "zhangsan"@'localhost'.原创 2022-04-09 20:00:13 · 12273 阅读 · 0 评论 -
MySQL系列——DQL_多表查询
MySQL系列——DQL_多表查询原创 2022-04-20 13:44:25 · 11747 阅读 · 0 评论