- 博客(4)
- 收藏
- 关注
原创 读书笔记(第三章 数据存储与检索 索引部分)
读书笔记(第三章 数据存储与检索) 主要是在确定了数据模型以及查询语言的基础上,明确数据库如何存储输入的数据,并且如何进行数据查找 有利于我们根据业务需要(如负载以及使用情况等),挑选最适合的存储引擎 存储所需数据结构 单纯地记录数据,使用遍历的方式进行数据查找,复杂度在O(n)级别 可以采用空间换时间的方式,用额外的信息来加速查找过程,在最坏的情况下也只是和遍历的复杂度一致 在联合索引中什么时候会出现这种索引失效而需要进行全文遍历的情况? 使用索引也会带来额外的负担 会使用额外的空间存储索引 在
2021-03-02 22:14:44 137
原创 Go的一些核心及其实现(关键)
Go 核心特性 goroutine channel defer 切片 垃圾回收机制(内置runtime?) int与int32 interface代替继承多态 字母大小设置可见性 没有模板泛型 所有类型初始化默认为0 反射 切片Slice与数组 在底层实现上: 切片,是底层实现数组每个数据的引用,自身是结构体, 初始化时,可以不进行长度、容量的声明,长度可以不断增加,但是不会减少 长度为slice的元素个数 容量是slice第一个元素到底层数组的最后一个最后一个元素的距离 长度可变 底层连续地址空
2021-02-15 21:37:26 208
原创 操作系统(进程与线程)
线程与进程 线程切换与进程切换 两者切换最大的区别在于:进程切换涉及到虚拟内存空间的切换而线程切换不会 虚拟内存是操作系统的一种抽象 虚拟内存作为一种资源存在,每个进程有自己的、私有的、地址连续的虚拟内存 虚拟内存与实际的物理内存存在转换关系(地址空间映射),通过页表来实现,记录了虚拟内存到物理内存的映射关系 页表查找通常是一个很慢的过程,通过cache的方式(TLB)进行加速 进程切换之后TLB失效,因此切换后的一段时间内,进程执行的速度会下降,因此线程切换会比进程切换要快 进程拥有自己独立的虚拟
2021-02-11 17:38:58 216
原创 c与c++
C与C++ c++的新功能:模板、面向对象 inline与defind区别 inline是声明内联函数,在编译的时候会直接把调用该函数的地方直接编译替换掉 ,避免频繁使用栈 defind声明的变量在使用的地方相当于字符串替换 new、delete、malloc、free new、delete、free: free,只是会进行内存的操作,即释放内存。new会调用构造函数,delete会调用析构函数 new、delete是c++运算符,会执行对应的构造与析构函数 malloc、free为库函数,只涉
2021-02-09 17:27:13 194
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人