Mybatis Plus ID生成器 Mybatis Plus ID生成器 实体类字段注解@TableId(type=IdType.) 自3.3.0开始,默认使用雪花算法+UUID(不含中划线) 值 描述 AUTO 数据库ID自增 NONE 无状态,该类型为未设置主键类型(注解里等于跟随全局,全局里约等于 INPUT) INPUT insert前自行set主键值 ASSIGN_ID 分配ID(主键类型为N 2024-03-17 Software Language Java Mybatis MybatisPlus
关系数据库标准语言SQL 关系数据库标准语言SQL SQL的产生与发展 目前,没有一个人数据库系统能够支持SQL标准的所有概念和特性,同时,许多软件厂商对SQL基本命令集还进行了不同程度的扩充的和修改,又可以支持标准以外的一些功能特性。 SQL的特点 综合统一。 高度非过程化。 面向集合的操作方式。 以一种语法结构提供多种使用方式。 语言简洁,易学易用。 SQL的基本概念 支持SQL的关系数据库管理系统同样支持关系数 2024-03-17 Software BackEnd Database 概念
Redis 认证 Redis 认证 我们可以通过 Redis 的配置文件设置密码参数,这样客户端连接到 Redis 服务就需要密码验证,这样可以让你的 Redis 服务更安全。 配置 可以通过以下命令查看是否设置了密码验证: 123127.0.0.1:6379> CONFIG get requirepass1) "requirepass"2) "" 默认情况下 2024-03-17 Software BackEnd Database Redis
Redis 分布式锁 Redis 分布式锁 我们在系统中修改已有数据时,需要先读取,然后进行修改保存,此时很容易遇到并发问题,由于修改和保存不是原子操作,在并发场景下,部分对数据的操作可能会丢失,在单服务器系统我们常用本地锁来避免并发带来的问题,然而,当服务采用集群方式部署时,本地锁无法在多个服务器之间生效,这时候保证数据的一致性就需要分布式锁来实现。 Redis 以其高性能著称,但使用其实现分布式锁来解决并发仍存在 2024-03-17 Software BackEnd Database Redis
Redis 持久化 Redis 持久化 RDB(Redis Database) 机制 在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读到内存里。 Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。 整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能。 2024-03-17 Software BackEnd Database Redis
Redis 双写一致性 Redis 双写一致性 一致性 一致性就是数据保持一致,在分布式系统中,可以理解为多个节点中数据的值是一致的。 强一致性:这种一致性级别是最符合用户直觉的,它要求系统写入什么,读出来的也会是什么,用户体验好,但实现起来往往对系统的性能影响大。 弱一致性:这种一致性级别约束了系统在写入成功后,不承诺立即可以读到写入的值,也不承诺多久之后数据能够达到一致,但会尽可能地保证到某个时间级别(比如秒级别 2024-03-17 Software BackEnd Database Redis
Redis ShardedJedis Redis ShardedJedis ShardedJedis是基于一致性哈希算法实现的分布式Redis集群客户端,集群使用一致性 hash 来确保一个 Key 始终被指向相同的 Redis Server,每个 Redis Server 被称为一个 Shard 因为每个 Shard 都是一个 Master,因此使用 sharding 机制会产生一些限制:不能在 sharding中直接使用 Jed 2024-03-17 Software BackEnd Database Redis
Redis 事务 Redis 事务 Redis 事务可以一次执行多个命令,并且带有以下三个重要的保证。 批量操作在发送 EXEC 命令前被放入队列缓存。 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。 在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。 一个事务从开始到执行会经历以下三个阶段: 开始事务。 命令入队。 执行事务。 实例:以下是一 2024-03-17 Software BackEnd Database Redis
Redis Jedis Redis Jedis 连接Redis Jedis 123456Jedis jedis = new Jedis("127.0.0.1", 6379);// jedis.auth("password"); // 如果服务器需要密码,验证密码。jedis.select(0); // 选择0号数据库。jedis.connect(); // 连接。jedis.dis 2024-03-17 Software BackEnd Database Redis
Redis Eval命令 Redis Eval命令 Redis Eval 命令使用 Lua 解释器执行脚本。 Redis Eval 命令基本语法如下: 1$ EVAL script numkeys key [key ...] arg [arg ...] script:参数是一段 Lua 5.1 脚本程序,脚本不必(也不应该)定义为一个 Lua 函数。 numkeys:用于指定键名参数的个数。 key [key ... 2024-03-17 Software BackEnd Database Redis
MySQL 问题解决 MySQL 问题解决 Date显示不正常 原因:由于JDBC参数Timezone与Mysql系统时区不一致导致的。 解决方法 修改serverTimezone配置。 1jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai 在application.properties配置文件增加JSON时区配置。 1spring.jac 2024-03-17 Software BackEnd Database MySQL
MySQL 锁 MySQL 锁 两段锁 数据库遵循的是两段锁协议,将事务分成两个阶段,加锁阶段和解锁阶段(所以叫两段锁) 加锁阶段:在该阶段可以进行加锁操作,在对任何数据进行读操作之前要申请并获得S锁(共享锁,其它事务可以继续加共享锁,但不能加排它锁),在进行写操作之前要申请并获得X锁(排它锁,其它事务不能再获得任何锁),加锁不成功,则事务进入等待状态,直到加锁成功才继续执行。 解锁阶段:当事务释放了一个封锁以 2024-03-17 Software BackEnd Database MySQL
MySQL 配置 MySQL 配置 JDBC连接参数 参数名称 参数说明 缺省值 最低版本要求 user 数据库用户名(用于连接数据库) 所有版本 password 用户密码(用于连接数据库) 所有版本 useUnicode 是否使用Unicode字符集,如果参数characterEncoding设置为gb2312或gbk,本参数值必须设置为true false 1.1g charac 2024-03-17 Software BackEnd Database MySQL
MySQL 日志 MySQL 日志 Mysql 有4种类型的日志:Error Log,Genaral Query Log,Binary Log 和 Slow Query Log Error Log 记录Mysql运行过程中的Error,Warning,Note等信息,系统出错或者某条记录出问题可以查看Error日志。 Mysql的错误日志默认以${hostname}.err存放在Mysql 2024-03-17 Software BackEnd Database MySQL
MySQL 性能优化策略 MySQL 性能优化策略 优化表的数据类型,选择合适的数据类型: 原则:在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。 在定义邮政编码这个字段时,如果将其设置为 CHAR (255),显然给数据库增加了不必要的空间,甚至使用 VARCHAR 这种类型也是多余的,因为 CHAR (6)就可以很好的完成任务了。 同样的,如果可以的话,我们应该使用 MEDIUMINT 2024-03-17 Software BackEnd Database MySQL
MySQL 字符集与排序 MySQL 字符集与排序 Character set 1234567891011121314-- 创建数据库时指定字符集。create schema schema_name character set utf8 collate utf8_general_ci;-- 创建表时指定字符集。create table table_name engine=InnoDB default charset=utf 2024-03-17 Software BackEnd Database MySQL
MySQL 存储引擎 MySQL 存储引擎 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建,查询,更新和删除数据。 不同的存储引擎提供不同的存储机制,索引技巧,锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。 现在许多不同的数据库管理系统都支持多种不同的数据引擎, MySQL 的核心就是插件式存储引擎。 MySQL 给用户提供了诸多的存储引擎,包括处理事务安全表的引擎和出 2024-03-17 Software BackEnd Database MySQL
MySQL 备份 MySQL 备份 导出 导出一张表 123mysqldump -u用户名 -p密码库名表名 > 文件名。mysqldump -uroot -p123456 school student > a.sql 导出多张表 123mysqldump -u用户名 -p密码库名表1 表2 表3 > 文件名。mysqldump -uroot -p123456 school student res 2024-03-17 Software BackEnd Database MySQL
MySQL 初始化 MySQL 初始化 Docker 生成 Docker Volume 1234567# 启动临时容器$ docker run -d -P --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.32# 将容器中的 mysql 配置文件复制到宿主机中指定路径下$ mkdir -p ~/DockerVolumes/mysql/conf/$ docke 2024-03-17 Software BackEnd Database MySQL
MySQL 命令行操作 MySQL 命令行操作 使用环境 查看版本 1mysql --version 运行信息 1mysql> STATUS 帮助信息 1mysql --help 连接数据库 连接数据库通用格式 1mysql -P 端口号 -h MySQL主机名或ip地址 -u 用户名 -p -P 大写 P 代表端口,小写 p 代表密码, h 代表主机名或 ip, u 代表 user 用户。 本地连接 如果是命 2024-03-17 Software BackEnd Database MySQL