搭建demo
本文最后更新于:2022年12月27日 下午
- 索引和数据,都是存放在磁盘。读取的时候,优先把索引加载到内存中的
- 引擎存放数据的方式是不一样的
- innodb,数据和索引放在同一个文件中
- myisam,数据和索引是分开放在不同文件的
- mysql的数据存储格式是B+树,为什么
- 目前的数据读取速度瓶颈就是IO
- 因此需要 1.减少IO数量,2.减少IO次数
- 可选方案:
- hash表,1.需要好的hash算法、2.存储内容无序,范围查找需要遍历
- 二叉树,BST,AVL树,黑红树。缺点是数据量大的时候,树会很高。树深了就会导致IO次数
- B树,磁盘中存放这索引和数据,数据占据了磁盘的大部分空间,假如一行数据1k,一个磁盘块就是16行,那么三层的B树就是16*16*16(每一个节点都有16个孩子)=4096
- B+树,磁盘中只存放索引
- 操作系统
- 局部性原理
- 之前被访问的数据可能被再次访问
- 数据和程序都有聚集成群的倾向
- 磁盘预读
- 内存和磁盘交互存在最小的逻辑单位,页 (4K或者8K)
- INNODB引擎进行数据加载的时候,读取是16K (4页或者2页)
- 局部性原理
搭建demo
http://coder-xieshijie.cn/2022/05/18/随笔/其他技能/搭建demo/