![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 70
天上飞的云传奇
一个年轻人
展开
-
Mysql死锁相关测试--DEMO
测试用表CREATE TABLE `t` ( `id` int(11) NOT NULL, `c` int(11) DEFAULT NULL, `d` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `id_c` (`c`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;INSERT INTO `t` VALUES ('0', '0', '0');INSERT INTO `t` VALUES ('5',原创 2022-03-23 12:21:04 · 1576 阅读 · 0 评论 -
Mysql基础架构+日志系统
涉及内容:基础架构,两种日志redo log 、 binlog,两阶段提交,刷脏策略,日志的持久化策略,undo log日志。Mysql基础架构Mysql可以分为server层和存储引擎层server层: 连接器:校验用户名密码、获取权限 分析器:词法分析、语法分析 优化器:执行计划生成,选择索引 执行器:操作引擎,返回数据存储引擎层: 存储数据,提供读写接口 词法分析:识别出字符串分别是什么、代表什么语法分析:判断sql是否符号Mysql语法原创 2022-02-25 11:07:31 · 130 阅读 · 0 评论 -
阿里云 Linux 初始化配置一个redis
安装+配置从官网copy一个下载链接 redis.io在Linux任意目录下执行wget https://download.redis.io/releases/redis-6.2.6.tar.gz解压 tar xzvf redis-6.2.6.tar.gz安装cd redis-6.2.6makecd srcmake install PREFIX=/usr/local/redis之前代码为源码目录,现在移动到编译好的目录下移动配置文件cd ../mkdir /us原创 2022-01-18 20:07:33 · 192 阅读 · 0 评论 -
阿里云 Mysql 初始化全部linux命令
Mysql使用的是阿里云系统镜像,直接有5.7的版本。在root目录下readmo文件中有root用户登陆密码。创建普通用户登陆之后创建一个用户,授予这个用户项目数据库的权限CREATE USER 'user_name'@'host' IDENTIFIED BY 'password';user_name:要创建用户的名字。host:表示要这个新创建的用户允许从哪台机登陆,如果只允许从本机登陆,则 填 ‘localhost’ ,如果允许从远程登陆,则填 ‘%’password:新创原创 2022-01-17 15:40:27 · 695 阅读 · 0 评论 -
Redis的String数据结构详解
对于Redis的String类型的value,采用的是SDS数据结构。但是对于value是8字节的Long类型的value则使用的是int编码。也就是说,这种一对一,非集合类型的value有俩种编码方式。value是Long类型的(只要是数字就行),保存方式是int编码value中有字符,则使用SDS。对于SDS也有两种编码,根据字符串长度区分,小于等于44字节则使用embstr。大于则使用raw编码。SDS结构:元数据(len(4字节,表示已用长度),alloc(4B,表示已分配实际长度大原创 2022-01-11 16:30:27 · 930 阅读 · 0 评论 -
Redis的一些相关问题
Redis的优点应用维度:数据结构应用、缓存应用、集群应用数据类型:String(动态字符串)、List(双向链表和压缩列表)、Hash(压缩列表和哈希表)、Set(哈希表和整数数组)、Sorted Set(跳表和压缩列表)。缓存:有过期键的淘汰策略(定时删除、定期删除、惰性删除)、有内存不够时处理策略(拒绝新写操作、淘汰旧的键)集群:主从集群(维护多个实例之间的数据一致性)和切片集群(将一个大的实例切片成为多个小的实例)系统维度:高性能、高可靠、高可扩展高性能:多种数据结构,比如说压缩列原创 2022-01-11 14:34:17 · 422 阅读 · 0 评论 -
Redis快速的原因
Redis 有哪些知识点高可靠:主从复制、哨兵节点、持久化高性能:数据结构、网络架构、持久化、线程模型高可扩展:数据分片、负载均衡Redis基础架构和重要模块访问框架网络访问操作模块 get/set/delete索引模块 基于哈希表存储模块AOFRDB5。高可用:主从复制、哨兵机制高可扩展:数据分片Redis 快速的原因之高效的数据结构String–> SDS 简单动态字符串List --> 双向链表、压缩列表Hash --> 哈希表、压缩原创 2022-01-11 11:13:52 · 251 阅读 · 0 评论 -
Redis之哨兵机制学习记录
主从复制可以解决集群中数据不一致的情况。但是一主多从。主挂掉之后怎么办?从服务器挂掉还有主服务器和其它的。这就需要哨兵机制来实现主从库自动切换哨兵机制实现主库挂掉之后,的重新选主。有三个具体的点:监控、选主、通知。监控:监控主库、从库。通过心跳检测,发送ping给主从库,无响应则可判断主观下线了。选主:只有主库下线有选主流程。根据从库的状态,选择一个从库作为主库通知:通知其它从库,主库已经变更。通过客户端,主库已变。具体:监控:主观下线:哨兵进程会使用PING来接测主从库和自己之间的网络状况原创 2022-01-11 09:35:31 · 229 阅读 · 0 评论 -
Redis之主从复制
只使用单机版的redis,只要服务器宕机了,数据恢复期间无法执行新的请求。并且如果服务器磁盘出现故障,那么数据就会丢失。也就是单点故障解决就是多来几个redis,搭一个集群。那么怎么保证多redis之间的数据一致性?数据的读写操作是否每台服务器都可以处理?redis解决的方法就是主从复制机制。主服务器可以执行读写操作,从服务器只能执行读操作,且会接收主服务器的写操作命令,并且执行。这样只在主服务器上面进行写操作。然后同步该操作到其余读服务器,这样就能保证多服务器数据的一致性。重点是同步操作主服务器原创 2022-01-10 17:33:42 · 154 阅读 · 0 评论 -
Redis之RDB内存快照学习记录
已知AOF是记录每一条写操作命令,之后恢复数据库的时候再把命令都执行一遍。对应的RDB则是记录一瞬间redis数据库的所有数据,以二进制格式记录。这样会恢复的很快。带来的问题:对哪些数据做快照?这关系到快照的执行效率问题;做快照时,数据还能被增删改吗?这关系到 Redis是否被阻塞,能否同时正常处理请求。对哪些数据做快照,怎么做?redis的rdb生成是全量快照,也就是说对所有数据进行快照。恢复的时候很快。但是这样生成的时候就会消耗的时间很大。执行效率就是生成rdb的时候会不会阻塞主线程。主原创 2022-01-10 11:14:13 · 431 阅读 · 0 评论 -
Redis之AOF日志学习记录
AOFAOF是如何实现的?aof是一个写后日志,就是先写入内存,之后再记录到日志文件中。问题1:为什么先写内存后写入文件?AOF记录文件格式:set "wty" "123345" aof中记录:*2$6SELECT$10//*3 是指有三个部分//$3 是指set占多少字节//之后是命令 set*3$3set$3wty$6123345这些内容在写入文件时候并没有做语法检查,所有先写入内存,之后再写入文件,可用保证记录的命令是正确的。先执行内存写入,再写文件原创 2022-01-10 10:37:48 · 654 阅读 · 0 评论 -
Mysql怎么解决幻读问题(innoDB)
Mysql怎么解决幻读问题(innoDB)幻读:在一个事务中,第一次读取的行数和第二次读取的行数不一致。可以见到别的事务新插入的行,并且得是已提交的事务在隔离级别定义中,可重复读级别下是解决不了幻读的。所有innoDB引入了锁机制解决。要知道可重复读级别的实现是MVCC。对于快照读,也就是处于事务中的读来说。只能见到开启事务的一刻数据库的数据状态。另外一个事务新插入的行也是不可见的。实验DEMO,5.7版本的快照读下,部分解决幻读问题数据和索引,id为主键索引事务A第一次快照读下查询数据为原创 2021-12-11 20:17:54 · 801 阅读 · 0 评论 -
Mysql 锁相关
Mysql 锁隔离级别和锁在读未提交,读取数据不用加共享锁,读已提交,读操作需要加共享锁,不过在语句执行完释放可重复读,读操作加共享锁,事务提交之前不释放,必须等待事务执行完毕之后释放序列化,锁定整个范围的键,并一直持有锁,直到事务结束锁行级锁,是粒度最小的锁,只对当前操作行加锁,会出现死锁,发生锁冲突概率低表级锁,表示对当前整个表加锁,发生锁冲突概率大,不会出现死锁,并发度最低innodb实现锁的算法record lock ,单个行记录上的锁gap lock 间隙锁,锁定一个范围,原创 2021-11-06 21:46:20 · 401 阅读 · 0 评论 -
Mysql关于索引的问题
Mysql关于索引的问题索引的优点减少了mysql需要扫描的数据量帮服务器避免排序和创建临时表将随机io变成顺序iomysql有哪些数据类型整数:,tinyint,0~8位。smallint,16位。mediumint,24位。int,32位,bigint 64位长度:create table (id int(2));这样创建的int,还是32位,只是可以配合UNSIGNED ZEROFILL,当不满2个宽度就高位填充0小数:float,double,decimaldec原创 2021-11-06 17:03:13 · 398 阅读 · 0 评论 -
innodb引擎怎么实现的隔离性
innodb引擎怎么实现的隔离性read view + mvcc多版本并发控制具体: 首先,mysql,innodb默认隔离级别是可重复读。接下来说一下怎么实现的这四种隔离级别读未提交,什么操作都没有,直接读取最新的记录就行读已提交。每次读取select之前都会新建一个read view。然后下一次读取记录A时就会比较read view 中记录的信息和聚簇索引行上隐藏利记录的事务idread view 中有持有改read view 的事务id,当前活跃的所有事务的列表,活跃的事务中原创 2021-11-06 16:07:28 · 164 阅读 · 0 评论 -
Mysql学习笔记
索引索引的优点减少了mysql需要扫描的数据量帮服务器避免排序和创建临时表将随机io变成顺序iomysql有哪些数据类型整数:,tinyint,0~8位。smallint,16位。mediumint,24位。int,32位,bigint 64位长度:create table (id int(2));这样创建的int,还是32位,只是可以配合UNSIGNED ZEROFILL,当不满2个宽度就高位填充0小数:float,double,decimaldecimal存储的精确小原创 2021-11-06 14:01:44 · 284 阅读 · 0 评论 -
[只是我问题的伪解决]执行Springboot程序连接数据库被拒绝
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.java.net.ConnectException: Connection refused原创 2021-08-14 21:24:37 · 1304 阅读 · 1 评论 -
sql学习笔记
sql学习笔记sqlselectdistinct 去除state字段的重复项SELECT DISTINCT state FROM customers; between a and b >=a <=b 包含临界值WHERE name LIKE ‘b%’ 获取name值为b开头的任意长度的字符串 不区分大小写 ‘%b%’字符串中间有b ‘_b’ 下划线代表一个字符 '__y’代表三个字符最后一个是y _代表一个任意字符WHERE name REGEXP ‘f原创 2021-07-23 20:50:42 · 102 阅读 · 0 评论 -
springBoot项目部署到服务器----全,多图
springBoot项目部署到服务器文章目录springBoot项目部署到服务器1. 首先得有个服务器2. 有了服务器后就得配置Java环境。3. 打jar包部署spring boot项目到服务器4.执行springboot jar包5. 关于数据库6. 如果想打war包7. 结束1. 首先得有个服务器 1. 随便买一个,我买的阿里云的单核2G一年86.看了华为云,腾讯云,百度云,阿里云,能找到的最便宜的就是86一年了。阿里云小站如果买单核的买完之后可以在<轻量级应用服务器管理平台>原创 2021-01-27 15:17:17 · 757 阅读 · 0 评论 -
数据库操作JDBC DButils 连接池
JDBC - DButils 连接池JDBC使用步骤1.加载驱动Class.forname("com.mysql.jdbc.Driver");2.获得连接Connection conn=DriverManager.getConnection("jdbc:mysql://students","root","root");3.基本操作3.1 获得执行sql语句的对象Statement st = conn.createStatement()3.2执行sql语句ResultSet rs =原创 2020-07-15 09:33:35 · 158 阅读 · 0 评论 -
MySQL更换路径带来的问题,2003+1045+更换密码
一顿瞎操作带来的后果在学到jisp的时候又用到了数据库,但是当我打开cmd想要运行MySQL的时候,服务启动失败。。。第一时间想到,win+r 输入Services.msc打开服务,然后再这里启动服务,依旧是失败。。。提示一模一样找不到路径。我就懵逼了,然后win+e打开文件管理器,找了一下MySQL,最后在一个我放软件的地方找到了。结合之前的报错,我就知道了,我把人家从原来位置移了过来,但是服务还有其他的my.ini文件的路径都是原来的,这肯定报错。到这里,其实把MySQL移到原来的位置就好了,但是原创 2020-06-01 23:36:03 · 200 阅读 · 0 评论 -
C3P0 报An attempt by a client to checkout a Connection has timed out.的反思
An attempt by a client to checkout a Connection has timed out.客户端签出连接的尝试已超时。Exception in thread "main" java.sql.SQLException: An attempt by a client to checkout a Connection has timed out. at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:11.原创 2020-05-17 20:17:16 · 803 阅读 · 0 评论 -
数据库软件MySQL的下载与安装+Navicat for MySQL图形化管理界面的下载与连接
MySQL1 . mysql的下载与安装可以直接到官网下载 是免费的官网下载地址选择的不是当前最新的版本,看传智播客的老师说只是学习的话,旧的版本问题少。2019年 最新版 传智黑马Java数据库阶段 采用IDEA+MySQL+Oracle(已完结)百度网盘下载地址链接: mysql-5.7.30-winx64提取码:8io6下载是有 MSI Installer 和 ZIP两种格式前一种安装MySQL是有一个图形化界面去让你操作下载,后面一种得在cmd命令窗口下使用原创 2020-05-14 12:41:45 · 2374 阅读 · 0 评论