### 數據文件的組織形式
因應用不同而有多種組織形式:堆文件,順序文件,散列文件,聚簇文件,按列存儲。
|組織形式 |存儲方式 |優點 |缺點|
---|---|---|---
堆文件|記錄與記錄之間沒有順序關系,每條記錄可以存放在文件中的任何地方,只要想被存儲的地址有足夠空間。|存儲簡單|維護混亂
順序文件|記錄按某個搜索碼的值的順序進行存儲|按搜索碼進行檢索,效率非常高|當頻繁插入和刪除元組時,文件的維護困難,一般通過指針+塊溢出處理數據新增。
散列文件|直接存取文件或哈希文件,利用哈希函數,將具有相同搜索碼值的記錄散列到外存(通常是磁盤上)的同地址范圍中|記錄隨機存放,不需進行排序,所以插入、刪除方便,存取速度快,不需要索引區,節省存儲空間|支持按搜索碼的隨機查詢;哈希函數的選擇不是一件容易的事情,選擇不當就會造成桶的偏斜
聚簇文件|每塊可存貯多個有關聯的關系|支持高效率的多表連接查詢|降低單表查詢的效率
按列存儲|適應統計查詢及OLAP應用的存儲方式|減少無用數據的讀入量;利用數據壓縮減少訪問被盤的次數。|
- 前言
- 第一部分 計算機網絡與操作系統
- 大量的 TIME_WAIT 狀態 TCP 連接,對業務有什么影響?怎么處理?
- 性能占用
- 第二部分 Java基礎
- 2-1 JVM
- JVM整體結構
- 方法區
- JVM的生命周期
- 堆對象結構
- 垃圾回收
- 調優案例
- 類加載機制
- 執行引擎
- 類文件結構
- 2-2 多線程
- 線程狀態
- 鎖與阻塞
- 悲觀鎖與樂觀鎖
- 阻塞隊列
- ConcurrentHashMap
- 線程池
- 線程框架
- 徹底搞懂AQS
- 2-3 Spring框架基礎
- Spring注解
- Spring IoC 和 AOP 的理解
- Spring工作原理
- 2-4 集合框架
- 死磕HashMap
- 第三部分 高級編程
- Socket與NIO
- 緩沖區
- Bybuffer
- BIO、NIO、AIO
- Netty的工作原理
- Netty高性能原因
- Rabbitmq
- mq消息可靠性是怎么保障的?
- 認證授權
- 第四部分 數據存儲
- 第1章 mysql篇
- MySQL主從一致性
- Mysql的數據組織方式
- Mysql性能優化
- 數據庫中的樂觀鎖與悲觀鎖
- 深度分頁
- 從一條SQL語句看Mysql的工作流程
- 第2章 Redis
- Redis緩存
- redis key過期策略
- 數據持久化
- 基于Redis分布式鎖的實現
- Redis高可用
- 第3章 Elasticsearch
- 全文查詢為什么快
- battle with mysql
- 第五部分 數據結構與算法
- 常見算法題
- 基于數組實現的一個隊列
- 第六部分 真實面試案例
- 初級開發面試材料
- 答案部分
- 現場編碼
- 第七部分 面試官角度
- 第八部分 計算機基礎
- 第九部分 微服務
- OpenFeign工作原理