mysql运行原理笔记-连接的原理

连接的原理连接过程简介从本质上来说,连接就是把各个表中的记录都取出来进行依次匹配,并把匹配后的组合发送给客户端。把t1和t2两个表连接起来的过程如图所示。这个过程看起来就是把t1表中的记录和t2表中的记录连起来组成一个新的更大的记录,所以这个查询过程称为连接查询。如果连接查询的结果集中包含一个表中的

Java并发实现原理笔记-多线程基础

线程的优雅关闭stop()与destory()函数线程是一段运行中的代码,或者说是一个运行中的函数。既然是在运行中,就存在一个最基本的问题:运行到一半的线程能否强制杀死?答案是肯定不能。Java中,有stop()、destory()之类的函数,但这些函数都是官方明确不建议使用的。原因很简单,如果强制

Java并发编程实战笔记-基础构建模块

并发容器Java5.0提供了多种并发容器来改进同步容器性能。同步容器将所有对容器状态的访问都串行化,以实现它们的线程安全性。这种方法的代价是严重降低并发性,当多个线程竞争容器的锁时,吞吐量将严重降低。另一方面,并发容器是针对多个线程并发访问设计的。在Java5.0中增加了ConcurrentHash

软件架构设计杂记

缓冲IO和直接IO对于缓冲IO,一个读操作会有3次数据拷贝:读:磁盘->内核缓冲区->用户缓冲区->应用程序内存写:应用程序内存->用户缓冲区->内核缓冲区->磁盘对于直接IO,一个读操作,会有2次数据拷贝,一个写操作,有反向的2次数据拷贝:读:磁盘->内核

mysql运行原理笔记-基于规则的优化

外连接消除前文说过,内连接的驱动表和被驱动表的位置可以相互交换,而左外连接和右外连接的驱动表与被驱动表是固定的。这就导致了内连接可以通过优化表的连接顺序来降低整体的查询成本,而外连接却无法优化表的连接顺序。外连接和内连接的本质区别就是:对于外连接的驱动表的记录来说,如果无法在被驱动表中找到匹配ON子

Elasticsearch源码解析与优化实战-Elasticsearch介绍

基本概念和原理Elasticsearch是实时的分布式搜索分析引擎,内部使用Lucene做索引与搜索。何谓实时?新增到ES中的数据在1秒后就可以被检索到,这种新增数据对搜索的可见性称为准实时搜索。分布式意味着可以动态调整集群规模,弹性扩容,而这一切操作起来都非常简便,用户甚至不必了解集群原理就可以实

MySQL复制技术

复制技术的演进实际上有两条路线,一条路线为基于数据安全的复制技术演进;另一条路线为基于复制效率的复制技术演进。复制格式概述接触过MySQL的朋友都或多或少地知道,MySQL的复制是基于binlog(二进制日志)实现主从实例之间的数据同步的。binlog的格式可以分为三种,从某种意义上来说,也可以说对

MySQL性能优化

InnoDB存储引擎体系结构结合上图,我们可以看到,InnoDB存储引擎体系结构主要包含如下组件,分为两大部分。1、内存结构Buffer Pool:缓冲池是InnoDB在启动时分配的一个内存区域,用于InnoDB在访问数据时缓存表和索引数据。利用缓冲池,可以合并一些对经常访问的数据的操作,直接从内存