常识:数据存在磁盘;
1:磁盘的维度
寻址:ms
带宽:单位时间内多大的数据流动。g/M
2:内存:寻址 ns 秒》毫秒》微妙》纳秒
在寻址:磁盘比内存少10w倍
i/o buffer: 成本问题,
磁盘与磁道,扇区,一扇区518byte, 扇区越小,成本越多,(索引多)。
操作系统,4k为内存页大小 无论你读多少,都是最少4k从磁盘拿(是内存读取磁盘的时候 是以4k为一页存到内存中嘛)。
1:mysql:也最小4k 小于4k 浪费(因为mysql的数据也是读取磁盘的,磁盘对应4k),mysql没有索引,直接从磁盘读取 一样慢.
2:mysql的b+树 (树干)是存到内存中。内存先读取索引页和数据页读取到内存中 ,程序在直接读取内存。效率高于直接读取内存。
磁盘比内存寻址 少了10万倍
但是内存是有限的 不可能把数据全部存到内存中,所以出现了缓存:
因为redis是内存数据库。
redis:10w/s
mysql:1000/s