每日一面
文章平均质量分 88
程序员小温
全栈Engineer | 华南理工大学 | 软件工程系 | 交流分享 | Always Day One
展开
-
【每日一面】day04
对于MySQL来说,高度,代表磁盘IO次数,在相同高度下,B+树能存储的数据量远大于跳表。所以对于相同的数据量,MySQL的InnoDB采用B+树索引只需要较少的磁盘IO即可完成读操作;而对于写操作,B+树需要拆分合并索引数据页;跳表则独立插入,并根据随机函数确定层数,没有旋转和维持平衡的开销,写入性能会比B+树好很多。由于Redis工作在内存,一次内存IO的开销较小,所以为了提高写入性能,采用跳表作为Zset的实现。原创 2024-10-17 18:04:43 · 1006 阅读 · 0 评论 -
每日一面 day03
通过继承生成代理类,使用字节码生成库(如 ASM)来动态生成目标类的子类,并在子类中覆盖目标类的方法。代理对象实际上是目标对象的子类,所有对代理对象方法的调用都会被重定向到代理逻辑。在该方法中,您可以添加自定义逻辑(如记录日志、权限检查等),并最终调用目标对象的方法。:支持事务的原子性(Atomicity)和一致性(Consistency),以及实现 MVCC(多版本并发控制)。如果找不到匹配的名称,则根据**类型(byType)**进行查找。默认先通过**名称(byName)**查找对应的 bean。原创 2024-10-10 11:20:57 · 930 阅读 · 0 评论 -
【每日一面】day 2
如果查询条件跳过了中间的某一列,索引将不会完全被利用,比如只匹配B、C,或只匹配A、C;是 MySQL 中使用联合索引(即复合索引)时的一个重要规则,它决定了查询在使用联合索引时的效率。该原则意味着 MySQL 会按照联合索引的最左边的列开始匹配,查询条件必须从索引的最左边开始,否则索引不会被使用。:表示这些查询步骤的执行顺序是从上往下依次执行的,通常出现在简单查询或没有子查询的语句中。它显示的是被索引的列和查询条件之间的关系。要求查询条件必须从联合索引的最左边开始匹配,且可以匹配最左边的连续几列。原创 2024-10-09 12:03:16 · 495 阅读 · 0 评论 -
【每日一面】day 1
为了防止这种问题的发生,在Java 8中,对于HashMap的实现进行了改进,不仅改变了插入方式从头插法改为尾插法,而且引入了红黑树来优化长链表的性能。此外,还提供了线程安全的替代方案如ConcurrentHashMap,它通过分段锁等机制来支持高效的并发访问。如果你的应用需要处理并发情况,建议使用ConcurrentHashMap而不是普通的HashMap。具体来说,在发生哈希冲突时,即多个键值对映射到了同一个桶(bucket)上,这些键值对会以链表的形式链接起来。方法来判断一个Bean是否是单例。原创 2024-10-08 15:04:58 · 848 阅读 · 0 评论