ReZero's Utopia.

ReZero's Utopia.

Everything is permitted.

Mysql InnoDB
Mysql InnoDB InnoDB In-Memory Structures1、Buffer Pool: 未落盘前数据的缓存位置 - LRU,链表 Change Buffer: 要修改数据不在内存中时对应页修改的记录位置 记录到 Change Buffer时,同时记录 redo log,然后再慢慢把数据 load 到内存,load 过来后,再把 Change Buffer 里记录的修改,应用到内存(BufferPool)中,这个动作叫做 merge;而把内存数据刷到磁盘的动作,叫 purge: change buffer 只应用于二级索引(辅助索引),因为聚簇索引是唯一的,即每...
(转) JVM
本文内容笔记主要来自 mashibing: http://www.mashibing.com/ 以及深入理解JVM虚拟机 以及深入拆解Java虚拟机(郑雨迪)极客时间 https://time.geekbang.org/column/article/41245 编译在 HotSpot 里面,上述翻译过程有两种形式: 第一种是解释执行,即逐条将字节码翻译成机器码并执行; 第二种是即时编译(Just-In-Time compilation,JIT),即将一个方法中包含的所有字节码编译成机器码后再执行。 Java 字节码基本类型在 Java 中,正无穷和负无穷是有确切的值,在内存中分别等同...
(转) Mysql 索引
索引为什么采用 B+ tree Hash不支持范围查询 二叉树树高很高,只有B树跟B+有的一比。 B树一个节点可以存储多个元素,相对于完全平衡二叉树整体的树高降低了,磁盘IO效率提高了。 而B+树是B树的升级版,只是把非叶子节点冗余一下,这么做的好处是为了提高范围查找的效率。提高了的原因也无非是会有指针指向下一个节点的叶子节点。 explain索引命中id is null 和 id = 1 都能命中索引 (除此之外的大多都不能命中索引,比如 负向 != 比较 > < 范围 between 等) 但是 id is null or id = 1 还是触发 全表扫描(ty...
(转)Mysql Transaction
MySql Transaction事务如何保证 原子性: undo log binlog记载的是update/delete/insert这样的SQL语句,而redo log记载的是物理修改的内容(xxxx页修改了xxx)。即redo log 记录的是数据的物理变化,binlog 记录的是数据的逻辑变化。 binlog的作用是复制和恢复而生的。 主从服务器需要保持数据的一致性,通过binlog来同步数据。 如果整个数据库的数据都被删除了,binlog存储着所有的数据变更情况,那么可以通过binlog来对数据进行恢复。而redo log 存储的是物理数据的变更,如果我们内存的数据已经...
(转) Redis 基础知识笔记记录
文章笔记参考链接来自作者 敖丙 开源项目:https://github.com/AobingJava/JavaFamily 以及 Redis 设计与实现 以及 钱大的 Redis 深度历险 Redis 常见应用 记录帖子的点赞数、评论数和点击数 (hash)。 记录用户的帖子 ID 列表 (排序),便于快速显示用户的帖子列表 (zset)。 记录帖子的标题、摘要、作者和封面信息,用于列表页展示 (hash)。 记录帖子的点赞用户 ID 列表,评论 ID 列表,用于显示和去重计数 (zset)。 缓存近期热帖内容 (帖子内容空间占用比较大),减少数据库压力 (hash)。 记录帖子的相关...
Site Architecture
SummaryThe whole process of evolutionThe initial tiny site Application server needs much stronger CPU to control the complex business. Database server need much faster disk and larger memory to get disk retrieval & data cache faster So as file server need the disk. 123Note: There are 80...
(译)缓存参数无关算法
缓存参数无关算法 笔记参考链接: Cache Oblivious Introduce blog Cache Oblivious paper 假设 硬盘 存在 M bits,以 B bits 作为分页大小,缓存按页加载,介绍相关的缓存参数无关的命中算法,这里的参数指 B 转化问题: N 个整数, 按 B 个 一页,求最快找到 N 所在页的算法 算法低效但是参数无关: 二分查找假设 N 个整数本身是有序的,采用方法: 总长 O(N) 所以计算查找次数为 O(logN -logB),因为二分范围降到 B 时直接取出该页 参数无关是因为该算法并不知晓 B 的值,它只是按照标准的二分查找去搜(调用...
Netty note
netty note线程数影响原因Nio影响 Nio 线程数的因素是客户端延时,网络延时,服务端延时。也就是说当客户端建立连接后,因为延迟的原因,没有做出响应回复,建立的连接就会一直被占用,消耗的线程数也就会剧增。 BIOBio 不受客户端网络延时的影响而增线程,它主要受服务端(比如慢sql)会影响到线程数。 Tomcat 阻塞式 IO 模型
(转)Java Debug
Debug 基础知识笔记 (一)JDK 1.4.x: -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 JDK5-8: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 JDK9 or later: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 远程 debug 的机理大致猜一下应该也就是客户端和远程虚拟机建...
Sql Optimization
Sql 优化笔记大批量插入数据优化 导入的数据按照主键的顺序保存 导入数据前执行SET UNIQUE_CHECKS=0,关闭唯一性校验,带导入之后再打开设置为1:校验会消耗时间,在数据量大的情况下需要考虑。 导入前设置SET AUTOCOMMIT=0,关闭自动提交,导入后结束再设置为1 尽量使用多个值表的 INSERT 语句,这种方式将大大缩减客户端与数据库之间的连接、关闭等消耗。 如果在不同客户端插入很多行,可使用INSERT DELAYED语句得到更高的速度,DELLAYED含义是让INSERT语句马上执行,其实数据都被放在内存的队列中。并没有真正写入磁盘。LOW_PRIOR...
avatar
ReZero
大屁水饺的理想国.