赵俊的博客

在记录中成长


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于

  • 热门

  • 友链

  • 脚本

  • 搜索

MySQL InnoDB 事务隔离级别的实现原理

发表于 2020-03-01 | 分类于 MySQL | 评论数: | 阅读次数:

今天介绍下,在 MySQL 的 InnoDB 存储引擎中,事务隔离是如何实现的。

InnoDB 里面每个事务有一个唯一的事务 ID,叫作 transaction id。它是在事务开始的时候向 InnoDB 的事务系统申请的,是按申请顺序严格递增的。

对于数据库的每行记录,都会有三个隐藏字段:db_trx_id (事务 id)、db_roll_pt (回滚指针)、delete_flag(删除标记)。— 有懂的朋友,还望别细纠,其实 delete_flag 是在头信息中,这里是为了方便理解

对于 DML 操作来说:

  • INSERT:创建一条数据,db_trx_id 的值为当前事务 id, db_roll_pt 为 null 。
  • UPDATE:复制一行数据,将当前复制后这一行的 db_trx_id 置为当前事务的 id,db_roll_pt 是一个指针,指向复制前的那一条的。
  • DELETE:复制一行数据,将当前复制后这一行的 db_trx_id 置为当前事务的 id,db_roll_pt 是一个指针,指向复制前的那一条的。并把 delete_flag 置为 true 。
阅读全文 »

解决 Oracle 导入导出占用大量表空间的问题

发表于 2020-02-04 | 分类于 oracle | 评论数: | 阅读次数:

出现原因

对于 Oracle 而言, 每个表建立是, 都有一个属性为 initial, 表示此表占用的空间大小, 随着数据的新增, 此值也会一直增大, 但删除这个表的数据后, initial 也不会缩小. 所以使用时间越长, 每个表占用的空间都会很大.

且导出后, 其他机器再次导入, 也会占用其同样的 initial 大小.

阅读全文 »

Z-File 在线网盘程序,支持对象存储、本地存储、S3 协议、OneDrive 商业/家庭/个人/世纪互联版

发表于 2020-01-30 | 更新于 2020-02-09 | 分类于 开源项目 | 评论数: | 阅读次数:

前言

此项目是一个在线文件目录的程序, 支持各种对象存储和本地存储, 使用定位是个人放常用工具下载, 或做公共的文件库. 不会向多账户方向开发.

前端基于 h5ai 的原有功能使用 Vue 重新开发了一遍. 后端采用 SpringBoot, 数据库采用内嵌数据库.

预览地址: https://zfile.jun6.net
项目地址: https://github.com/zhaojun1998/zfile

阅读全文 »

ZFile 安装文档

发表于 2020-01-30 | 更新于 2020-02-09 | 分类于 开源项目 | 评论数: | 阅读次数:

前言

最近开发了一个在线网盘程序 ZFile, 支持各种对象存储、OneDrive、FTP、本地存储. 本文包含普通用户和宝塔用户的安装方式.

安装依赖

1
2
3
4
5
6
# CentOS系统
yum install -y java-1.8.0-openjdk unzip

# Debian/Ubuntu系统
apt update
apt install -y openjdk-8-jre-headless unzip
阅读全文 »

Spring 动态注入依赖设计

发表于 2019-09-02 | 分类于 Spring | 评论数: | 阅读次数:

前言

最近在开发一个在线网盘的功能, 支持多个存储策略. 启动时, 读取数据库, 获取当前启用的存储类型, 然后项目启动后, 还可以动态切换存储类型.

由于是基于 Spring 开发的, 所以一般是这么写的:

接口:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public interface FileService {

/**
* 接口中的方法, 以此为例.
*/
void method1();

/**
* 获取当前的存储类型
* @return 存储类型
*/
String getStorageType();

}

阿里云实现类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Service
public class AliyunFileService implements FileService {

@Override
public void method1() {
// do something...
}

@Override
public String getStorageType() {
return "阿里云";
}

}
阅读全文 »

LeetCode 461 Hamming Distance

发表于 2019-07-15 | 分类于 算法 | 评论数: | 阅读次数:

汉明距离

题意

两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。

给出两个整数 x 和 y,计算它们之间的汉明距离。

注意:
0 ≤ x, y < 231.

示例:

1
2
3
4
5
6
7
8
输入: x = 1, y = 4

输出: 2

解释:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑
阅读全文 »
12…31
赵俊

赵俊

一个 Java 学习者的博客,分享 Java 干货, VPS 知识, 软件推荐等。
184 日志
15 分类
95 标签
Creative Commons
Links
  • 在线网盘
  • 免费图床
  • 在线 JSON 解析
  • U-FILE 云盘
0%
冀ICP备17004571号-3 © 2016 – 2020 赵俊
由 Hexo 强力驱动 v3.8.0
|
主题 – NexT.Pisces v7.0.1