首页
话题
消息
手册

最新文章

MySQL InnoDB 数据页的结构

  • MySQL InnoDB 数据页的结构
  • MySQL InnoDB 数据页的结构
  • MySQL InnoDB 数据页的结构
  • MySQL InnoDB 数据页的结构

之前说过页是 MySQL 管理存储空间的基本单位,一个页一般是 16KB。MySQL 一次会将整个页加载到内存中(原因:内存速度远大于磁盘速度)。现在来看一下 InnoDB 中存放表中记录和索引的页的结构。了解了索引页的结构可以帮助我们了解后面使用索引查找为什么那么快。 先看数据页的结构,整体如下图: 比较简单的一些字段快速过一下:File Header 和 Page Header 是一些通用信息…

JSmiles 2022-01-14 浏览 729 评论 0 收藏 0

Golang 基本数据结构 Slice 与 Map 的底层实现

数组,切片 Go 语言数组在初始化之后大小就无法改变,数组在内存中都是一连串的内存空间。当一个数组变量被赋值或者被传递的时候,实际上会复制整个数组。如果数组较大的话,数组的赋值也会有较大的开销。 但我们更常用的数据结构是切片,切片的结构: type SliceHeader struct { Data uintptr Len int Cap int } Data 是一片连续的内存空间,这片内存空间可…

JSmiles 2022-01-14 浏览 898 评论 0 收藏 0

Golang 切片

无论是C语言中的数组还是Go语言中的数组,数组的长度一旦确定就不能改变,但在实际开发中我们可能事先不能确定数组的长度,为了解决这类问题 Go 语言中推出了一种新的数据类型切片 切片可以简单的理解为长度可以变化的数组,但是 Go 语言中的切片本质上是一个结构体 切片源码 type slice struct{ array unsafe.Pointer // 指向底层数组指针 len int // 切片…

JSmiles 2022-01-13 浏览 754 评论 0 收藏 0

HTML 的新模板标记:标准化客户端模板

在 web 开发领域中,模板这个概念并不新鲜。实际上,服务端的 模板语言/引擎,比如 Django (Python),ERB/Haml (Ruby),和 Smarty (PHP) 早已应用多时。近些年来,众多 MVC 框架蓬勃涌现。这些框架各有特色,但绝大多数在展现层(即:视图层)都使用同样的渲染机制:模板。 模板是个好东西,不信你就问问周围人。连它的定义都让人感到温暖舒适:模板 (n) - 一个…

眼泪淡了忧伤 2022-01-13 浏览 922 评论 0 收藏 0

Go 函数进阶

函数值 函数也可以当作值来使用,一个简单的例子: func square(n int) int { return n * n } func main() { f := square fmt.Println(f(3)) // "9" } 函数像其他值一样,拥有类型,可以被赋值给其他变量,传递给函数,从函数返回。一个将函数值传递给函数的例子: func TryTimes(ctx context.Con…

JSmiles 2022-01-13 浏览 913 评论 0 收藏 0

InnoDB 引擎中一条记录是怎样存储的

页是 MySQL 中磁盘和内存交互的基本单位,也是 MySQL 管理存储空间的基本单位。一个页一般是 16KB,当记录中的数据太多,当前页放不下的时候,会把多余的数据存储到其他页中,这种现象称为行溢出。 记录在磁盘上的存放方式称为 行格式,InnoDB 存储引擎到现在为止设计了 4 种不同类型的行格式,分别是 Compact、Redundant、Dynamic 和 Compressed 行格式。 …

JSmiles 2022-01-13 浏览 679 评论 0 收藏 0

Redis 单机数据库

一个数据库里用一个字典保存了键值对,称为键空间。键空间的键是一个字符串对象,值是上面五种redis对象之一。 键的过期时间 redis 中有一个字典保存了键的过期时间(毫秒时间戳)。 过期键删除策略对比: 定时删除 即在设置过期时间的同时,创建一个timer,一到过期时间就对键进行删除 好处是能快速释放内存,坏处是如果同一时间大量删除操作,会影响CPU性能 惰性删除 即在访问键的时候再删除。对CP…

JSmiles 2022-01-13 浏览 829 评论 0 收藏 0

Redis 基本数据结构

Redis中基本的数据结构,以及底层实现。包括字符串、链表、跳跃表、字典等等,这些数据机构是 Redis 实现 字符串、有序集合等等对象的基础。 简单动态字符串(SDS) 全称是 Simple Dynamic String,是Redis自己实现的一种字符串数据结构: struct sdshdr { int len; // 记录buf中已使用字节的数量 int free; // 记录buf中未使用字…

JSmiles 2022-01-13 浏览 742 评论 0 收藏 0

C++ 右值引用

R-Value 在第一章我们提到了左值和右值,然后告诉你不要太担心它们。在 C++ 11 出现之前这么说没什么问题。但是要理解 C++ 11 中的 Move 语义则需要重新审视该主题。这就是本节的内容。 左值和右值 尽管左值和右值名称中都包含 值 一词,但左值和右值实际上不是值的属性,而是表达式的属性。 C++ 中的每个表达式都有两个属性:一个类型(用于类型检查)和一个值类别(Value Cate…

千笙结 2022-01-12 浏览 796 评论 0 收藏 0

游戏场景素材 房子 UI欣赏

场景则是游戏中的环境、建筑、机械、道具等。游戏场景通常可以理解为根据企划的要求还原出游戏中的建筑物、树木、天空、道路等可用元素(包含武器道具与 NPC 等)。游戏场景设计师是最直接创造游戏世界环境的工程师。

JSmiles 2022-01-12 浏览 808 评论 0 收藏 0

一份不太简短的 LATEX 2e 介绍

LATEX 是一种排版系统,它非常适用于生成高印刷质量的科技和数学类文档。这个系统同样适用于生成从简单的信件到完整书籍的所有其他种类的文档。LATEX 使用 TEX 作为它的格式化引擎。 这份短小的介绍描述了 LATEX 2ε 使用,对 LATEX 的大多数应用来说应该是足够了。参考文献 对 LATEX 系统提供了完整的描述。 对大多数计算机,从个人计算机(PC)和 Mac 到大型的 UNIX 和…

JSmiles 2022-01-12 浏览 792 评论 0 收藏 0

两个时钟的故事 – 精确调度网络音频

使用 Web 平台构建出色的音频和音乐软件的最大挑战之一是管理时间。 不是“编写代码的时间”,而是时钟时间——关于网络音频最不为人知的话题之一是如何正确使用音频时钟。 Web Audio AudioContext 对象具有公开此音频时钟的 currentTime 属性。 特别是对于网络音频的音乐应用——不仅仅是编写音序器和合成器,还有任何有节奏地使用音频事件,如 鼓机 、 游戏 和 其他 应用程序…

拍不死你 2022-01-12 浏览 942 评论 0 收藏 0

Go 包管理

Package go 的文件都以 package PACKAGE_NAME 开头,表示这个文件属于哪个包,如果是 package main 表示这个文件是可以运行的。同一目录下的文件的package名称都相同。 我们可以通过新建一个目录,在目录下新建若干 go 源文件的方式来创建自己的 package,每个 go 源文件的的 package 的名字都是统一的(即我们创建的包的名字),它们也都属于同…

JSmiles 2022-01-12 浏览 799 评论 0 收藏 0

Go 性能优化 和 最佳实践

Best Practice 哪些情况适合放在 rpc? 可复用的一些逻辑,放在 rpc 方便多个上游调用,而下游只需要维护一套逻辑 某张表由该服务来维护,可以把相关的增删查改操作都放在 rpc 层维护 http 只进行读操作,更新创建删除放在 rpc 层 Bulletins 来自「Go语言圣经」: 不要将 Context 放到结构体中,而是以参数传递,并且在作为参数传递时,需要将其作为第一个参数传…

JSmiles 2022-01-12 浏览 1004 评论 0 收藏 0

Git 基础用法学习笔记

对于 git,我认为只需要掌握平时工作中够用的就行,没必要深入地掌握非常高阶的东西,这些基本用法可以覆盖工作中的绝大多数场景,一些更高级的用法则可以遇到问题时再查。 所以,在 git 入门了之后,这部分也不用去看什么东西,慢慢在工作中就掌握了,或者让一个有工作经验的人来总结一下常用的,就够了。 Git 最高频命令 git add .,git add fileName:会将本地文件作的改动存在暂存区…

JSmiles 2022-01-12 浏览 745 评论 0 收藏 0
更多

推荐作者

意中人

文章 0 评论 0

artaime

文章 0 评论 0

用户100600860645

文章 0 评论 0

J.smile

文章 0 评论 2

qq_MVfp79

文章 0 评论 0