SQL 表访问方式揭秘 单表访问方法对于单表查询来说,查询的执行方式大致分为以下两种: 使用全表扫描进行查询 使用索引进行查询 const我们可以直接通过主键列来定位一条记录,比如我们创建一个案例: 1234567891011121314151617CREATE TABLE table (id INT NOT NULL AUTO_INCREMENT,key1 VARCHAR(100),key2 INT,key 2021-10-24 mysql
Buffer Pool Buffer Pool如何调节磁盘与CPU的矛盾? 数据存放在表空间的页中,是存储在磁盘上,但是磁盘的速度很慢,所以数据库在处理数据时会把数据加载到内存中,当需要访问某个页的数据时,就会把完整的页全部加载到内存中,也就是说即使我们只需要访问一个页的一条记录,那也需要先把完整的页数据加载到内存中. 在进行完读写访问之后并不着急把该页对应的内存空间释放掉,而是将其缓存起来,这样将来再有请求访问该页面 2021-10-24 mysql
数据库事务 什么是事务?事务是逻辑上的一组操作,要么都执行,要么都不执行 比如现实中的转账业务,一个加钱,一个减钱,必须都成功 原子性要么全都做,要么全不做的规则称之为原子性 隔离性现实世界中的两次状态转换应该是互不影响的,比如说狗哥向猫爷同时进行的两次金额为5元的转账(假设可以在两个ATM机上同时操作)。那么最后狗哥的账户里肯定会少10元,猫爷的账户里肯定多了10元。但是到对应的数据库世界中,事情 2021-10-24 mysql
Netty入门 同步与异步同步与异步关注的是消息通信机制,同步就是在发出一个调用时,在没有得到结果之前,该调用就不返回,但是一旦调用返回,就得到返回值了而异步相反,调用在发出之后,这个调用就立即返回了,所以没有返回结果,当一个异步过程调用发出之后,调用者不会立即得到结果,而是在调用发出之后,被调用者通过状态,通知来通知调用者,或者通过回调函数来处理这个调用 阻塞与非阻塞阻塞与非阻塞关注的是程序在等待调用结果时 2021-10-24 Netty
SSO 实现机制当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统进行登录:根据用户提供的登录信息,认证系统进行身份验证,如果通过校验,应该返回给用户一个认证的凭据—ticket;用户再访问别的应用的时候就会将这个ticket带上,作为自己的凭据,应用系统接收到请求之后会把ticket送到认证系统进行校验,检验ticket的合法性,如果通过校验,用户可以在不用再次登录的情况下访问应用系统 2021-10-24 SSO
ArrayList源码 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210 2021-10-24 JDK
HashMap HashMap 实现了Map接口,允许放入key为null的元素,也允许插入value为null的元素,除该类未实现同步外,其余跟hashtable大致相同,跟TreeMap不同,该容器不保证元素顺序,容器可能会对元素重新hash,元素的顺序也会被打散,因此不同时间迭代同一个hashMap的顺序可能会不同. java解决hash冲突的办法是冲突链表方法. 有两个参数可以影响HashMap 2021-10-24 JDK
二进制逻辑运算回顾 逻辑变量之间的称为逻辑运算,二进制1和0在逻辑上可以代表”真”与”假”,”是”与”否”计算机的逻辑运算主要包括三种基本运算:逻辑加法(又称”或”运算),逻辑乘法(又称”与”运算)和逻辑否定(又称”非”运算),此外还有”异或”运算. 或运算逻辑加法通常用符号”+”或符号”∨”来表示,逻辑加法的运算规则如下:0+0=0, 0∨0=00+1=1, 0∨1=11+1=1, 1∨1=11+0=1, 1∨ 2021-10-24 算法
Redis底层数据结构 Redis底层数据结构简单动态字符串(SDS)redis构建了一种名为简单动态字符串(SDS)的数据结构,并将SDS作为redis的默认字符串表示。除了用来保存字符串值外,SDS还被用作缓冲区:AOF模块中的AOF持久化,以及客户端状态中的输入缓冲区SDS的结构: 12345678910111213struct sdshdr { // 记录 buf 数组中已使用字节的数量 2021-10-24 Redis