个人简介

Echo Blog


江湖无名 安心练剑
  • mysql learn-01-mysql limit 的分页性能很差问题及其解决方案
    业务背景 以前有一个查询是全表扫,感觉对 database 不友好。 所以想改为 limit 进行分页查询。 代码编写时使用 mybatis-pageHelper 分页插件,直接处理分页。 结果实际性能却很差,为什么呢? limit 的性能问题 MySQL的limit基本用法很简单。limit接收1或2个整数型参数,如果是2个参数,第一个是指定第一个返回记录行的偏移量,第二个是返...
    2020-10-17 08:15:55 | Database
  • mysql learn-00-overview mysql 学习专题汇总
    序言 mysql 作为一款开源数据库,使用范围非常之广。 最核心的原因在于便宜,而且生态日趋完善。 所以本系列将对 mysql 进行重新整理学习,并且后期尝试实现简易版本的 mysql。 整体模块 myql 安装 mysql 基本使用 mysql 进阶技巧 mysql 实现原理 mysql 简易版实现 拓展阅读 mysql 相关专题 相关书籍 以前阅读完了两本书: ...
    2020-10-17 08:15:55 | Database
  • 索引数据结构(1)概览篇
    基础知识 排序 【Exchange sorts】 冒泡排序 BubbleSort 快速排序 Quicksort 【Selection sorts】 Selection sort Heapsort 【Insertion sorts】 Insertion sort Shellsort Tree sort 【Merge sorts】 Merge sort 【Distri...
    2020-10-17 08:15:55 | Index
  • 锁专题(13)使用 @sun.misc.Contended 避免伪共享
    什么是伪共享 缓存系统中是以缓存行(cache line)为单位存储的。 缓存行是2的整数幂个连续字节,一般为32-256个字节。最常见的缓存行大小是64个字节。 当多线程修改互相独立的变量时,如果这些变量共享同一个缓存行,就会无意中影响彼此的性能,这就是伪共享。 缓存行上的写竞争是运行在SMP系统中并行线程实现可伸缩性最重要的限制因素。 有人将伪共享描述成无声的性能杀手,因为从代...
    2020-10-17 08:15:55 | Lock
  • 锁专题(12)Phaser 相位器转换工具
    Phaser 简介 可重用的同步屏障,其功能类似于CyclicBarrier和CountDownLatch,但支持更灵活的用法。 这个工具类我们暂时就翻译为:移相器/相位器 使用入门 我们来看一个简单的例子。 假设我们有一个比赛,有多位玩家参加。 当所有玩家完成第一次比赛,我们认为上半场游戏结束;全部参加完第二次比赛,认为下半场游戏结束。 这个要如何实现呢? 自定义 Pha...
    2020-10-17 08:15:55 | Lock
  • 锁专题(12)高并发进阶 Exchanger 双方栅栏源码深度解析
    Exchanger 简介 有时我们须要对元素进行配对和交换线程的同步点,使用 exchange 方法返回其伙伴的对象,这时我们就须要使用线程类中的 Exchanger 类了, 简而言之,可以在不同线程间交换数据。 使用入门 废话少说,直接上代码。 定义执行类 private static class ExchangeRunnable implements Runnable { ...
    2020-10-17 08:15:55 | Lock
  • 锁专题(11)简单,快速,实用的非阻塞和阻塞并发队列算法
    说明 这个是李大狗在 juc 中提到的算法论文,找了半天网上也没有。 于是决定自己翻译一下。 论文作者:Maged M. Michael Michael L. Scott 翻译作者:老马啸西风 ps: 最近发现自己的文章被各种盗,别人的 SEO 还比自己的高,醉了醉了。 摘要 借鉴以前的作者的想法,我们提出了一种新的非阻塞并发队列算法和一种新的双锁队列算法,其中一个队列和一个出...
    2020-10-17 08:15:55 | Lock
  • 锁专题(10)Linux的HBO实现
    HBO 如果存在锁争用限制了Linux的可扩展性,那么到目前为止使用的方法是更改​​Linux内核中自旋锁的使用方式。 锁可以分解为多个锁,可以更改算法来避免锁(例如上面讨论的用于解剖页面表输入操作的方法)等等。 尽管这些都是有效的方法:对于具有4个以上处理器的系统,为什么不看到自旋锁争用的一般性问题,而是寻求对自旋锁算法本身进行修改以解决争用? 我们需要的是一种反向偏移算法,该偏移...
    2020-10-17 08:15:55 | Lock