02 2021 档案

摘要:cas在java中是如何实现的? cas通过调用JNI,通过借助c语言来调用cpu底层指令实现,以intel x86平台举例,最终映射的指令是cmpxchg 来实现比较并替换操作 cmpx如何保证多核心下的线程安全? 如果是多线程 系统会对总线加锁,只有一个线程可以对总线加锁成功,加锁成功后执行ca 阅读全文
posted @ 2021-02-28 22:56 rudynan 阅读(94) 评论(0) 推荐(0) 编辑
摘要:数据都是存储在磁盘中的,单查询某条记录的时候,mysql从表空间中取出对应的页,从磁盘加载到内存,当查询完不会立刻释放,而是缓存起来. 这个用于缓存磁盘中的页的连续内存空间就是buffer pool,可以在配置文件中设置大小默认128m buffer pool内部是由控制块和缓存页组成 控制块:保存 阅读全文
posted @ 2021-02-25 13:51 rudynan 阅读(169) 评论(0) 推荐(0) 编辑
摘要:explain执行计划: 1. id 每个select对应着一个id 在连接查询中id值相同,排在前面的是驱动表 2. select type - simple 查询子句中不包含union或者子查询 - primary 使用union和子查询来说,最左边的那个查询就是primary - union 阅读全文
posted @ 2021-02-25 10:09 rudynan 阅读(106) 评论(0) 推荐(0) 编辑
摘要:以下是自己的理解,如不对请不吝赐教谢谢,勿喷 普通的bean创建 跟下面的创建过程一样,如某个bean被aop增强了,在实例化完之后会调用AbstractAutoProxyCreator.postProcessAfterInitialization方法,这个方法就会返回被增强后的a的代理对象 然后放 阅读全文
posted @ 2021-02-24 21:33 rudynan 阅读(582) 评论(0) 推荐(0) 编辑
摘要:优化器为sql进行重写叫做查询重写 1. 条件简化 移除不必要的括号 常量传递 a=5 and b>a 转化为a=5 and b>5 等值传递 a=b and b=c and c=5; 转化为a=5 and b = 5 and c = 5; 移除没用的条件 移除永远为true 或 false的条件 阅读全文
posted @ 2021-02-24 10:17 rudynan 阅读(365) 评论(0) 推荐(0) 编辑
摘要:连接表的本质就是把个个表的数据都取出来 依次匹配组合 并返回给用户 以一条连接查询语句为例: t1表 m1 n1 1 a 2 b 3 c t2表 m2 n2 2 b 3 c 4 d SELECT * FROM t1, t2 WHERE t1.m1 > 1 AND t1.m1 = t2.m2 AND 阅读全文
posted @ 2021-02-22 15:33 rudynan 阅读(81) 评论(0) 推荐(0) 编辑
摘要:1. const 直接使用主键 或者唯一索引的二级索引进行查询 对null值进行匹配的时候是不适用的,因为唯一索引是不限制null值的数量的 2. ref 采用二级索引于常数等值比较 查询效率取决于 相同记录的数量 3. ref_or_null 查询某个二级索引的等值列 或者 此二级索引为null的 阅读全文
posted @ 2021-02-22 14:39 rudynan 阅读(176) 评论(0) 推荐(0) 编辑
摘要:jdk动态代理在创建代理对象的时候 会创建一个二进制文件 在文件中包含着target 目标增强对象,和invocationHandler 的增强方法. 在代理类执行增强方法的时候,会把代理对象本身, 代理类持有的目标对象target 和 参数传给代理类持有的invocationHandler对象的i 阅读全文
posted @ 2021-02-21 22:00 rudynan 阅读(49) 评论(0) 推荐(0) 编辑
摘要:简单的索引方案,不是真实索引方案 1. 要实现简单的索引方案有一些规则需要符合 - 下一个记录页的主键 必须大于上一个记录页的主键 假设表中有三条用户记录,当一条新的主键为4的用户记录插入到表中的时候,为了遵守第一条规则需要创建一个新的页,并且把主键为5的记录后移,这一过程称为页分裂 下一步是给这些 阅读全文
posted @ 2021-02-18 17:57 rudynan 阅读(127) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示