| 1234567891011121314151617181920212223242526272829303132333435 |
- ============================================================
- Hash 索引专项验证 (Linear Hashing)
- ============================================================
- ========== 1. 插入 30000 行 (必然触发多次桶分裂)
- [PASS] 插入 30000 行 耗时 1.22s, Count=30000
- ========== 2. 索引精确性 (每个 Age 值 + 抽样主键)
- [PASS] 全部 200 个不同 Age 值的行数完全一致
- [PASS] SearchByIndex 覆盖全部 200 个 Age 值
- [PASS] 抽样 811 个主键回表一致
- ========== 3. RangeScan (键过滤 + 排序, 哈希不保序)
- [PASS] 范围 [30,40] Count=1100 (期望 1100)
- [PASS] 范围 [30,40] OrderBy Age 升序, 取回 50 行
- [PASS] 范围 [30,40] OrderBy Age 降序, 取回 50 行
- ========== 4. 大量删除 (触发桶合并/收缩)
- [PASS] 删除 29500 行 耗时 2.27s (0 失败)
- [PASS] 删除后 Count=500 (期望 500)
- [PASS] 删除后 Age=25 Count=500 (期望 500)
- [PASS] 删除后 Age>=30 Count=0 (期望 0)
- ========== 5. 关闭重开 (持久化)
- [PASS] 重开后 Count=500 (期望 500)
- [PASS] 重开后 Age=25 Count=500 (期望 500)
- [PASS] 重开后 500 个保留主键全部可回表
- [PASS] 重开后全量扫描取回 500 行
- [DEBUG] Header: TablePage=2 NextFreePage=573 FreePageStart=35 FirstWAL=0 LastWAL=0 NextTxn=3
- [DEBUG] BufferPool: total=0 dirty=0
- ========== 6. 空间占用
- [PASS] DB 文件 8.94 MB (313 字节/行)
- ========== 总结: 通过 16, 失败 0
|