掘友等级
获得徽章 0
#青训营 x 字节后端训练营# 数据库要做哪些事?
校验数据的合法性:比如说主键(唯一性),字段(是否匹配,长度是否符合)
修改内存:用高效的数据结构组织数据,例如B+数,红黑树
写入存储介质:以寿命 & 性能友好的方式写入硬件
#青训营 x 字节后端训练营# 三级Cache分别是L1、L2、L3,它们的速率是三个不同的层级,L1速率最快,与CPU速率最接近,是RAM速率的100倍,L2速率就降到了RAM的25倍,L3的速率更靠近RAM的速率。
#青训营 x 字节后端训练营# 存储系统的定义
一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统。
这里强调的是软件,并不仅仅说的是用户和存储设备打交道,需要和一个整体的软件打交道。
#青训营 x 字节后端训练营# 从1980年开始CPU和内存速率差距在不断拉大,为了弥补这2个硬件之间的速率差异,所以在CPU跟内存之间增加了比内存更快的Cache,Cache是内存数据的缓存,可以降低CPU访问内存的时间。
#青训营 x 字节后端训练营# CPU速度很快,但硬盘等持久存储很慢,如果CPU直接访问磁盘,磁盘可以拉低CPU的速度,机器整体性能就会低下,为了弥补这2个硬件之间的速率差异,所以在CPU和磁盘之间增加了比磁盘快很多的内存。
#青训营 x 字节后端训练营# Go这门语言抛弃了C/C++中的开发者管理内存的方式,实现了主动申请与主动释放管理,增加了逃逸分析和GC,将开发者从内存管理中释放出来,让开发者有更多的精力去关注软件设计,而不是底层的内存问题。这是Go语言成为高生产力语言的原因之一。
#青训营 x 字节后端训练营# 物理内存就是磁盘存储缓存层,在没有虚拟内存的时代,物理内存对所有进程是共享的,多进程同时访问同一个物理内存会存在并发问题。而引入虚拟内存后,每个进程都有各自的虚拟内存,内存的并发访问问题的粒度从多进程级别,可以降低到多线程级别。
#青训营 x 字节后端训练营# SOCKS5 服务器通过将前端发来的请求转发给真正的目标服务器, 模拟了一个前端的行为。在这里,前端和SOCKS5之间也是通过TCP/IP协议进行通讯,前端将原本要发送给真正服务器的请求发送给 SOCKS5 服务器,然后 SOCKS5 服务器将请求转发给真正的服务器。
#青训营 x 字节后端训练营# 从应用层到存储介质
1 buffer,cache(缓存很重要),因为传入时是内存数据,需要从内存写到硬盘中,速度上没有办法去匹配,所以buffer及cache很重要。也就是之前说的以寿命&性能友好的方式写入硬件。
2 拷贝的代价是昂贵的,拷贝会降低性能。
3 软件和硬件之间需要有一个抽象的统一接入层。
#青训营 x 字节后端训练营# 为实现在线词典,我们需首先在对应词典网站上得到请求,再通过 Convert curl to Go (curlconverter.com) 将请求转换为 Go 语言类型的程序。
下一页