- 博客(3)
- 收藏
- 关注
原创 对数据库三大范式的理解
1、第一范式(字段不可再分,具有原子性) 如个人信息表,拥有如下字段,若有获取具体城市的需求,那么该信息表不符合第一范式 身份证号 姓名 家庭住址 将家庭住址字段进行拆分,则符合第一范式,如下 身份证号 姓名 国家 身份 城市 2、第二范式(非主键字段完全依赖于主键字段,也就是非主键字段不能部分依赖于主键的某个字段,建立在第一范式的基础之上) 如学生选课表,拥有如下字段。该表<学号,课程号>组成了主键,成绩字段完全依赖于该主键,但是姓名只依赖于学号(也就是部分依赖于主
2021-03-11 00:46:33 290
原创 多线程本地内存刷入主存的时机
*****在多线程的环境下,如果某个线程首次读取共享变量,则首先到主内存中获取该变量,然后存入工作内存中,以后只需要在工作内存中读取该变量即可。同样如果对该变量执行了修改的操作,则先将新值写入工作内存中,然后再刷新至主内存中。但是什么时候最新的值会被刷新至主内存中是不太确定的,这也就解释了为什么VolatileFoo中的Reader线程始终无法获取到init_value最新的变化。 *****使用关键字volatile,当一个变量被volatile关键字修饰时,对于共享资源的读操作会直接在主内存中进行(当然
2021-02-22 18:12:35 715
原创 对于mvcc版本控制的解读
1、事务ID生成的时机 begin语句并不生成事务ID,在执行增删改查操作时,才会生成事务ID。 例如:学生表如下 事务A和事务B分别执行如下语句 A B begin begin update 学生 set 年龄 = 10 where 学号 = ‘S001’ select * from 学生 where 学号 = ‘S001’ 查询的结果为如下,年龄并没有被改变,说明A在select的时候才生成事务ID,因为Innodb的mvcc只读取行的系统版本号小于等于当前事
2021-01-21 18:46:30 420
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人