常识
1、磁盘 2个指标
- 寻址 磁盘寻址速度单位是毫秒级
- 带宽 单位时间内有多少个字节流过去,多大的数据量过去。单位基本是G或M级别
2、内存
- 寻址 内存寻址速度单位是纳秒级
3、I/O buffer 成本问题
- 磁盘有磁盘与扇区。一个扇区有512个字节Byte
- 成本变大、索引变大,所以为了避免这样,无论读多少,都是最少4k从磁盘拿
4、数据存储发展进程
-
1、操作系统底层读写4k ---- >大文件的读写,I/O成为瓶颈,诞生了数据库
-
2、数据库
- 2.1、data page 大小也是4k
- 2.2、建表和建索引 ,索引大小也是4k
- 2.3、建关系型数据库表,必须给出schema(表的列数,每个列的类型,约束)
- 2.4、存储倾向于行级存储。优点是空余的字节长度也会把这行占位,当未来数据增删改时,不用移动数据,直接用新的数据在所占位置覆写即可
- 2.5、B+Tree :数据和索引都是存储在磁盘中,B+Tree是存储在内存中的
- 2.6、数据库的表很大,检索性能变低?: 这是一个面试题
- 1、增删改,如果表有索引的话,增删改会变慢,因为要维护索引
- 2、但是查询速度呢?
- 一个或少量查询,依然很快
- 但是并发查询或一个复查的查询会受到磁盘带宽影响,速度变慢
-
3、缓存
- 当数据量很大的时候,关系型数据库变得很慢,诞生了一个折中的方案—缓存