磁盘常识
查询数据:
- linux
- grep
- awk
- 磁盘存储数据
- IO读取
- 全量IO扫描,分而治之思维
- SAP HANA内存关系型数据库
- mysql,结构化的数据
- 数据库为什么比磁盘快?
- 索引,索引消耗的空间
- schema,类型,就是大小
- B+tree
- 树干在内存
- 叶子节点在磁盘
- 数据库的表变得越来越大
- 如果是简单查询,查询速度依然很快;
- 高并发场景下,查询也是受到磁盘IO的影响
- 增删改,会受到表的越大,写入速度越慢;数据越大,建立的索引也就越大
- 如果是简单查询,查询速度依然很快;
- redis
redis为什么快
- mysql并发 1200/s
- MongoDB并发 1.6万/s
- redis并发 8万/s
- 磁盘寻址,毫秒 ms
- 秒,毫秒,微妙,纳秒
- 文件放在磁盘的扇区里面,就要用磁头去寻址
- 带宽
- 每秒读取的数据量,每秒,百兆
- 文件越来越来,会有一个 全量的 IO读取,就会很慢
- 内存,纳秒
- 数据在内存里面,比在磁盘里面快了近 10万倍
- 应用层,有逻辑地址
- 应用层对象的地址是虚拟地址,可以同时指向一个物理地址
- 地址映射关系,即指针,可以节省空间
- 物理层,有物理地址
为什么是 key,value的数据格式
- sql有数据约束,数据的完整性约束
redis是单线程
redis业务处理是单线程
IO线程
tail -f
IO线程
BIO
NIO,不阻塞
epoll 多路复用