磁盘 | 内存
存储的数据查询有两点 :
1.寻址
2.带宽
磁盘的寻址是 ms 级别
内存的寻址是 ns 级别
So!!!! 内存的寻址是比磁盘快10万倍的。(1ms = 1000μs ; 1μs = 1000nm)
磁盘有磁道和扇区,如果一扇区占512byte,扇区多导致索引的量越大,操作系统读都是4k的读。
数据库
数据库的结构是由4k大小 datapage组成,且在新建表时有宽度,行记录不管值是否为空都会补齐大小。方便增删改查。
通过建索引 来优化查询速度,索引会回表 找到对应datapage所在potision。
增删改会导致索引的B+树发生改变,影响性能
Redis
redis 是单进程单线程单实例的,通过eppoll多路复用nio,减少用户态和内核态的切换(共享空间实, 由红黑树+链表+mmap组成)