程序人生
文章平均质量分 55
灬子非鱼丶
带着一颗寻找事物客观规律的心,而非偏见。
展开
-
DIY一个属于自己的微服务框架
从Vertx提供的通信方式开始第一个集群节点启动package org.example;import com.hazelcast.config.Config;import com.hazelcast.config.FileSystemXmlConfig;import io.vertx.core.Vertx;import io.vertx.core.VertxOptions;import io.vertx.core.eventbus.EventBusOptions;import io.ver原创 2021-08-16 23:20:31 · 265 阅读 · 0 评论 -
面试官问我为什么要尽量避免数据表的 join 查询操作
理论指导实践,实践反过来又完善理论,没有孰轻孰重,只有相辅相成看法 对于开发提交的含有join的查询,一般比较抗拒,从而建议将join拆分,避免join可能带来的性能问题,同时也增加了程序和DB的网络交互。建议从数据库设计层面和应用程序编码中尽量避免join。事实 5.5 版本之前,MySQL本身只支持一种表间关联方式,就是嵌套循环(Nested Loop)。如果关联表的数据量很大,则join关联的执行时间会非常长。在5.5以后的版本中,MySQL通过引入BNL算法来优化嵌套执行,本文介绍两.原创 2021-07-11 14:29:25 · 1604 阅读 · 1 评论 -
面试官问我如何快速上手项目
费曼学习法把认知细化成三个步骤:第一步:获取某个只是/某概念,并且去理解这些内容。第二步:按照教程自己来讲解/复述你所获得的主要内容。第三步:用自己的方式再次复述一下所学到的知识。了解项目数据落地的存储关系 比如用的关系型数据库如MySQL,我们可以找公司相关人员要到ER关系图,如果公司没有人维护这样的文档,我们也要自己去理清或者请教最熟悉业务的开发。向架构和开发去了解项目 他们往往更加偏向工程的角度跟你鼓吹这个项目的设计之精妙。向产品和测试了解项目 了解这个项目的来龙去脉,问问.原创 2021-07-09 08:25:46 · 625 阅读 · 0 评论 -
阿里巴巴开发规范-命名风格
命名风格1. 【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。反例:_name / name / name/name/namename / name_ / namename/name/name / name2. 【强制】所有编程相关的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,纯拼音命名方式更要避免采用。正例:ali / alibaba / taobao / cainiao/ ali原创 2021-07-09 08:05:06 · 1031 阅读 · 0 评论 -
面试官问我Mysql binlog如何运作的
主节点binary log dump线程 当从节点连接主节点时,主节点会创建一个 log dump 线程,用于发送 binlog 的内容。在读取 binlog 中的操作时,此线程会对主节点上的 binlog 加锁,当读取完成,在发送给从节点之前,锁会被释放。从节点 I/O 线程 当从节点上执行start slave命令之后,从节点会创建一个 I/O 线程用来连接主节点,请求主库中更新的 binlog。I/O 线程接收到主节点 binlog dump 进程发来的更新之后,保存在本地 relay-l.原创 2021-07-02 22:46:11 · 250 阅读 · 1 评论 -
面试官问我redo log如何实现Mysql持久性
如果你觉得符合逻辑,那便也许是对的回顾持久性持久性是指事务一旦提交,它对数据库的改变就应该是永久性的,接下来的其他操作或故障不应该对本次事务的修改有任何影响。redo logredo log包括两部分:一是内存中的日志缓冲(redo log buffer),该部分日志是易失性的;二是磁盘上的重做日志文件(redo log file),该部分日志是持久的并且是物理日志并且顺序存储在redo log buffer或者redo log file on disk中,由很多log block组成,大家.原创 2021-06-24 08:36:59 · 1104 阅读 · 2 评论 -
面试官问我undo log如何实现Mysql原子性
源码固然重要,但是每个问题背后都有一个基本的逻辑思路 undo log即回滚日志,update操作时undo log记录了某行记录变更之前的样子,行记录通过回滚指针(DATA_ROLL_ID)关联到undo log变更前的记录,这条记录依然可以DATA_ROLL_ID找到之前的还原点(undo log中的记录)。insert和delete记录了反向的delete和insert操作。从我的描述来看undo log记录的是逻辑上如何还原。 这次一次Mysql事务只要记录下undo log,这样在我们.原创 2021-06-20 20:42:17 · 612 阅读 · 0 评论