innodb记录结构 页 我们知道读写磁盘的速度非常慢,和内存读写差了几个数量级,所以当我们想从表中获取某些记录时,InnoDB存储引擎需要一条
配置 除了在命令行启动的时候指定参数如:mysqld –default-storage-engine = MyISAM外,MySQL程序在启动时会寻找多个路径下的配置文件,这些路径有的是固定的
InnoDB 统计数据是如何收集的 通过SHOW TABLE STATUS可以看到关于表的统计数据,通过SHOW INDEX可以看到关于索引的统计数据,那么 这些统计数据
字符集及编码 MySQL中的 utf8和 utf8mb4 我们上边说utf8字符集表示一个字符需要使用1~4个字节,但是我们常用的一些字符使用1~3个字节就可以
实现安全的map 自go 1.6之后, 并发地读写map会报错,这在一些知名的开源库中都存在这个问题,所以go 1.9之前的解决方案是额外绑定一个锁
主进程是master,worker进程处理请求 nginx.conf文件核心配置 worker_processes 1; // worker进程的个数 events { worker_connection 1024; // 每个worker进程可以
被驱动表能用到索引 select * from t1 straight_join t2 on (t1.a=t2.a); 如果直接使用 join 语句,MySQL 优化器可能会选择表 t1 或 t2 作为驱动表,这样会影响我们分析 SQL 语句的执行过程。所以
服务器层次划分 为了管理方便,人们把连接管理、查询缓存、语法解析、查询优化这些并不涉及真实数据存储的功能划分为MySQL server的功能,把
查询语句执行流程 MySQL 的基本架构示意图: Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日
什么是docker Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔
最早的计算机系统都是使用 EBCDIC(扩展的二进制的十进制转换码) 和 ASCII 编码,因为那时候只是用一些英文字母数字,加减号和其他一些字符,字符并不
mysql的crash-safe MySQL 保证数据不会丢的能力主要体现在两方面: 能够恢复到任何时间点的状态; 能够保证MySQL在任何时间段突然奔溃,
事务 典型的MySQL事务是如下操作的: start transaction; # 一条或多条sql语句 commit; 其中start transaction标识事务开始,commit提交事务,将
什么时候会加锁? 在数据库增删改查四种操作中,insert、delete和update都是会加排它锁(Exclusive Locks)的,而se
结构体能否比较?数组能否比较?slice、map、channel能否比较?接口能否比较?函数能否比较? 结构体比较 能用"==&ldq
快速入门 curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思. -i参数可以显示http response的
概述 我们可以为 Go 程序编写三类测试,即:功能测试(test)、基准测试(benchmark,也称性能测试),以及示例测试(example) 测试
lru实现 数组实现 用一个数组来存储数据,给每一个数据项标记一个访问时间戳,每次插入新数据项的时候,先把数组中存在的数据项的时间戳自增,并将新
背景 我们使用redis作为缓存,查询的时候先去redis查,如果有数据直接返回,降低数据库的压力。如果没有的话,查数据库,如果数据库中查到了
mysql的事务 undolog 实现原子性A。 UndoLog的原理很简单,为了满足事务的原子性,在操作任何数据之前,首先将数据备份到一个地方(这个存储数据