explain分析SQL查询

摘要: 以一个简单的explain语句为例: 它的结果是这样的 这里依次分析这些项: id:没什么好说的,查询的id select_type:查询类型,因为没有子查询所以是simple table:表名,若有别名则使用别名,不经过表则为null partitions:分区表命中的分区,若未分区则为null 阅读全文
posted @ 2019-06-14 12:11 s1a1n1d1 阅读(233) 评论(0) 推荐(0) 编辑

SQL查询慢?

摘要: 这个问题比较复杂,下面我直接列出一些可能的原因 一、客观问题 1、表损坏 不算常见的麻烦问题。引发表损坏的原因往往是: ① mysqld程序意外关闭、断电、强制关机 ② mysql本身的bug或磁盘损坏 往往导致查询结果不全或损坏。可用check table语句检查。 2、锁表 数据库中有两种基本类 阅读全文
posted @ 2019-05-28 19:59 s1a1n1d1 阅读(145) 评论(0) 推荐(0) 编辑

理解Spring IoC(一)

摘要: 毫无疑问,Spring是目前Java web的头号框架,而其最重要的特性就是IoC和AOP。 这里,我会用通俗的方式表达我对Spring IoC的理解 IoC 即 Inversion of Control,意为控制倒转。 它的实现需要DI,也就是依赖注入。 那么这个控制倒转到底是怎么倒转的呢? 其实 阅读全文
posted @ 2019-05-22 21:22 s1a1n1d1 阅读(137) 评论(0) 推荐(0) 编辑

数据库范式概述

摘要: 数据库的范式也是面试常见的基础问题之一,这里我结合它们的定义讲一讲我自己的理解 数据库第一范式: 数据库表的每一列都是不可分割的基本数据项在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。 第一范式不需要解释,容易理解 数据库第二范式 阅读全文
posted @ 2019-05-22 21:20 s1a1n1d1 阅读(234) 评论(0) 推荐(0) 编辑

谈谈进程和线程的区别

摘要: 进程和线程的区别是面试提问频率最高的问题,没有之一。 我们首先了解一下进程和线程的概念。 进程:一个进程就是一个正在执行程序的实例。 线程:操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。 这就是进程和线程。从他们的概念扩展开来,我们可以这样回答进程和线程的区别: 1 阅读全文
posted @ 2019-04-29 16:34 s1a1n1d1 阅读(242) 评论(0) 推荐(0) 编辑

TCP断开那些事

摘要: 继上一篇后,我们再来看一下四次挥手的过程 这里其实没有必要过多阐述,一张图胜过千言万语。 与三次握手一样,四次挥手的过程中也有许多扩展问题。 当然问的最多的还是:为什么要四次握手?为什么要等待2MSL的时间? 这个问题没必要死记硬背,只需要了解全双工的工作机制就好。 至于等待的2MSL(报文最大生存 阅读全文
posted @ 2019-04-27 14:24 s1a1n1d1 阅读(231) 评论(0) 推荐(0) 编辑

TCP三次握手那些事

摘要: 临近5月,春招和实习招聘逐渐进入尾声。本文主要讨论面试中经常提问的TCP连接的机制,附带一些扩展知识。 参加面试的时候,过半的面试官都会问TCP相关问题,而最常见的问题就是:讲一下TCP三次握手(四次挥手)。 一般来说,TCP连接的过程是客户端发起,服务端确认请求,客户端再确认的三次握手过程。 具体 阅读全文
posted @ 2019-04-27 10:26 s1a1n1d1 阅读(187) 评论(0) 推荐(0) 编辑

并查集的Java实现

摘要: Java实现并查集,合并时采用路径压缩算法。 如果合并时使用循环修改的方法,一次合并的时间复杂度就为N,无法接受 public class Union { public int[] id;//对应索引所在的集 public int[] sz;//所在集的size,合并时小集合大集 public in 阅读全文
posted @ 2019-01-27 13:34 s1a1n1d1 阅读(238) 评论(0) 推荐(0) 编辑

AVL树的Java实现

摘要: AVL树:平衡的二叉搜索树,其子树也是AVL树。 以下是我实现AVL树的源码(使用了泛型): 阅读全文
posted @ 2019-01-27 13:12 s1a1n1d1 阅读(376) 评论(0) 推荐(0) 编辑