Browse Source

Update Readme.md

main
kevinyao0901 3 weeks ago
parent
commit
223d4ef903
1 changed files with 13 additions and 3 deletions
  1. +13
    -3
      README.md

+ 13
- 3
README.md View File

@ -49,6 +49,8 @@
## 一,实验目的
在 LevelDB 的基础上设计和实现一个支持二级索引的功能,优化特定字段的查询效率。通过此功能,用户能够根据字段值高效地检索对应的数据记录,而不需要遍历整个数据库。
<br>
---
@ -86,6 +88,8 @@ name:Customer#000000002-k_2 : k_2
- **灵活性**:允许用户指定需要创建索引的字段,支持动态创建和删除索引。
- **易用性**:通过统一接口隐藏索引管理的复杂性,保持与原始 LevelDB 类似的用户体验。
<br>
---
@ -96,7 +100,7 @@ name:Customer#000000002-k_2 : k_2
## 三,`LevelDB`二级索引设计思路
#### 1. **设计结构**
·LevelDB· 的基础上扩展,补充并实现以下组件:
`LevelDB` 的基础上扩展,补充并实现以下组件:
##### 2.1 **核心组件**
1. **主数据库(DBImpl)**
@ -222,6 +226,8 @@ lessCopy code 主数据库 (DBImpl)
这套设计在功能性、一致性和性能之间达到了较好的平衡,能够为 LevelDB 提供高效、灵活的二级索引支持,同时保持其原有的高性能特性。
<br>
------
@ -492,8 +498,9 @@ Status DBImpl::Delete(const WriteOptions& options, const Slice& key) {
#### 实现意义
这种设计确保了主数据库和二级索引数据库的一致性,即便在部分写入或删除操作失败的情况下,仍能通过回滚机制保证数据的完整性和原子性。
---
<br>
---
@ -576,6 +583,8 @@ Level Files Size(MB) Time(sec) Read(MB) Write(MB)
- **删除索引的时间**:删除索引需要稍长时间,这也是常见的现象。
<br>
---
@ -654,10 +663,11 @@ if (!s.ok()) {
通过以上方案,有效解决了实验中遇到的问题,并提高了系统的稳定性和一致性。
---
<br>
---
## 总结
本实验通过在 `DBImpl` 中集成索引管理功能,实现了对二级索引的创建、查询和删除。二级索引数据存储在独立的 `indexDb_` 中,通过高效的键值映射提升了字段值查询的效率。

Loading…
Cancel
Save