2025-04-16
2025-04-16 ~ 2025-04-16
Redis 专题
0 Redis是什么?
- 是一个完全开源免费的key-value内存数据库
- 通常被认为是一个数据结构服务器,主要是因为其有着丰富的数据结构 strings、map、 list、sets、 sorted sets
Redis数据库
通常局限点来说,Redis也以消息队列的形式存在,作为内嵌的List存在,满足实时的高并发需求。在使用缓存的时候,redis比memcached具有更多的优势,并且支持更多的数据类型,把redis当作一个中间存储系统,用来处理高并发的数据库操作
2025-04-16
2025-04-16 ~ 2025-04-16
一、事务定义
- 事务:一个最小的不可再分的工作单元;通常一个事务对应一个完整的业务(例如银行转账业务,该业务就是一个最小的工作单元)
- 一个完整的业务需要批量的DML(insert、update、delete)语句共同完成
- 事务只和DML语句有关,或者说DML语句才有事务。这个和业务逻辑有关,业务逻辑不同,DML语句的个数不通
二、转账操作理解事务
关于银行账户转账操作,账户转账是一个完整的业务,最小的单元,不可再分———也就是说银行账户转账是一个事务
2025-04-16
2025-04-16 ~ 2025-04-16
基础
0 数据库设计范式
目前关系数据库有六种范式:
- 第一范式(1NF)
- 第二范式(2NF)
- 第三范式(3NF,又称巴斯-科德范式(BCNF))
- 第四范式 (4NF)
- 第五范式(5NF,又称完美范式)
最常接触到的是前三个范式 第一范式(1NF):是对属性的 原子性 的要求,要求属性具有原子性,不可再分解; 第二范式(2NF):2NF是对记录的 唯一性 ,要求记录有惟一标识,即实体的惟一性,即不存在部分依赖; 第三范式(3NF,又称巴斯-科德范式(BCNF)):3NF是对字段的 冗余性 ,要求任何字段不能由其他字段派生出来,它要求字段没有冗余,即不存在传递依赖;
2025-04-05
2025-04-05 ~ 2025-04-05
主键:
主关键字(primary key)是表中的一个或多个字段,它的值用于唯一的标识表中的某一条记录。在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录。主关键字是一种唯一关键字,表定义的一部分。一个表的主键可以由多个关键字共同组成,并且主关键字的列不能包含空值,主关键字是可选的,并且可在 CREATE TABLE 或 ALTER TABLE 语句中定义。
2025-04-05
2025-04-05 ~ 2025-04-05
定义和约束
- 主键索引(Primary Key):主键是一种特殊的唯一索引,用于唯一标识表中的每一行数据。主键列的值必须唯一且不能为空(NULL)。每个表只能有一个主键。
- 唯一索引(Unique Index):唯一索引确保某列或某几列的值唯一,但允许有空值(NULL)。一个表可以有多个唯一索引。
性能差异
- 查询性能:唯一索引在查询时的扫描速度较快,因为它可以快速找到唯一值的列。主键索引和自增主键的性能相近,但略逊于唯一索引。
- 插入性能:在插入数据时,主键索引和自增主键的性能相近,因为它们都需要生成唯一值。唯一索引的插入性能较差,因为它需要检查新插入的数据是否重复。
使用场景
- 主键索引:适用于那些不容易更改的唯一标识,如自动递增列、身份证号等。主键不允许空值,且一个表只能有一个主键。
- 唯一索引:适用于需要保证某列或多列数据唯一性的场景,但允许空值。例如,商品库存数量、用户邮箱等字段可以设置为唯一索引,以确保数据的唯一性。
物理存储特性
- 主键索引:通常是聚簇索引,意味着表中的数据实际上按主键的顺序存储。这可能在某些情况下提供更快的查询性能,特别是当查询涉及到表中的大量数据时。
- 唯一索引:通常是非聚簇索引,数据和索引分开存储。
2023-11-26
2023-11-26 ~ 2023-11-26
|
|
2023-06-18
2023-06-18 ~ 2023-06-18
|
|