mysql learn-03-Innodb 引擎介绍
不同版本特性
体系架构
后台线程
刷新内存池数据,保证内存缓存的是最新的数据,将已修改的数据文件刷新到磁盘中,数据库发生异常时InnoDB能恢复至正常运行状态.
Master Thread
负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性,包括脏页的刷新,合并插入缓冲,UNDO页的回收.
IO Thread
Async IO处理IO请求,四种Thre...
2020-10-17 08:15:55 |
Database
mysql learn-03-Innodb chat 聊一聊 innodb 数据库引擎
chat
Q: 详细介绍一下 InnoDB
InnoDB是MySQL数据库管理系统的一种存储引擎,最初由Innobase Oy AB开发,后来被Oracle Corporation收购。
它是MySQL中最流行和广泛使用的存储引擎之一,也是默认的存储引擎。
以下是关于InnoDB的详细介绍:
特点:
事务支持:InnoDB提供了对ACID(原子性、一致性、隔离性和...
2020-10-17 08:15:55 |
Database
mysql learn-02-mysql 体系结构和存储引擎
体系结构
连接者:不同语言的代码程序和mysql的交互(SQL交互)
1、连接池管理、缓冲用户的连接,线程处理等需要缓存的需求
2、管理服务和工具组件系统管理和控制工具,例如备份恢复、Mysql复制、集群等
3、sql 接口接受用户的SQL命令,并且返回用户需要查询的结果
4、查询解析器 SQL 命令传递到解析器的时候会被解析器验证和解析(权限、语法结构)
5、查询优化器 S...
2020-10-17 08:15:55 |
Database
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