Markdown
操作 | Hash | 有序数组 | 二叉树 | b树(B-tree,Balanced Tree) | b+树 | b*树 |
---|---|---|---|---|---|---|
Insert | O(1) | O(n) | O(logn) | n叉树,每个节点可以有1200个叉 | n叉树,优化b树存储,提供范围查找 | n叉树,优化b+树页分裂空间利用率低的问题 |
Remove | O(logn) | 树高不超过3 | 所有Key只在叶子节点上出现一次 | 非叶子节点的兄弟节点之间也通过指针相连 | ||
Update | 最多只需要访问3次磁盘就可定位数据块 | 所有非叶子节点都是叶子节点的索引 | 如果节点上的子节点满了 | |||
Find | O(1) | O(logn) | O(logn) | 极少io—根节点总在内存中 | 叶子结点如果是聚簇索引直接定位到记录 | 就将它的子节点挪一部分到旁边没满的兄弟节点上 |
Iterator(范围查找n) | O(n) | O(n)? | 所有数据只在节点上出现一次 | 叶子结点如果是非聚簇索引存储指向记录的指针 | 避免了重新创建新的节点的过程 | |
Sort/Group by | 搜索可以在非叶子节点结束 | 各个叶子节点通过指针跟兄弟节点关联(双指针) | ||||
supplement | 子节点数目超过后再二分,称作页分裂 |
Extradraw
本身是JSON格式存储,渲染为手绘风格的图画。可以导入Mermaid 格式的Flowchart
Mermaid
画流程图
graph LR id1(lineText)--基础校验-->id2[validText]--业务校验-->id7{是否是issue查找} id7--是-->id4[issue补全]--补全词伙-->id6[词伙补全] id7--否-->id3{关键词是否已经补全}--是-->id6 id3--否-->id5[关键词补全]--补全关键词-->id7
- 这里的射线是不能转弯的
- 结构换行必须加subgraph & end,也就是独立出来才行
- 文本换行得用
<br/>
标签… - 文字中不能包含
~
画思维导图
https://blog.csdn.net/skytruine/article/details/105828748
graph LR Output--> NAT(对应给客户端) NAT-->为了向Client屏蔽集群信息,Ngnix修改IP-Packet的起始地 Output--> DR(Direct-Server模式) DR-->处理服务器直接返回给Client DR-->Loopback(包括LoadBalance在内全都是同一IP) Loopback-->为了ARP可以定位LoadBalance,抑制除LR外的ARP响应
graph TD 保险--> A(核心域) A-->A1(承保上下文) A-->A2(理赔上下文) A1-->投保 A1-->核保 A1-->保单 A1-->收费 A1-->再保 A1-->批单 A1-->通知 保险--> B(通用域) B-->B1(产品上下文) B-->B2(收付上下文) B-->B3(渠道上下文) B-->B4(客户上下文) 保险--> C(支撑域) C-->C1(单证上下文) C-->C2(再保) 保险-->D(...)
画时序图
https://www.imooc.com/article/292709?block_id=tuijian_wz
sequenceDiagram participant 信贷 participant 信保 participant 产品配置中心 participant 服务编排 participant 无界山 信贷 ->> +信保 : @RequestBody uwApplyPolicyReq 信保 ->> 信保 : 校验Base参数 信保 ->> 信保 : 查询数据库初始化InsPolicyDO、InsPolicyLoanDO 信保 ->> + 产品配置中心 : 初始化InsProductResp 产品配置中心 -->> -信保 : 产品配置(产品属性,模板,计费方式等) 信保 ->> 信保 : 更新之后需要用的context 信保 ->> 信保 : 校验Biz(组合)参数 alt 状态为“PRE_SUCCEED” 信保 ->> 信保: 根据uwStatus判断是否幂等 信保 ->> 服务编排 : Map<String, AbstractUwFlow> 通过核保状态路由 服务编排 -->> 信保 : 对应的AbstractUwFlow 信保 ->> 信保 : 多态,AbstractUwFlow执行对应的行为 信保 ->> 信保 : fill入参到uwPolicyContext 信保 ->> + 无界山 : 查询保单状态 无界山 -->> - 信保 : 保单状态 信保 ->> + 无界山 : 告知修改后的保额保费,起止期,账单信息数据 无界山 -->> - 信保 : 修改成功或失败 信保 ->> + 无界山 : 核保 无界山 -->> - 信保 : 核保成功或失败 信保 ->> 信保 : 补充或更新context 信保 ->> +信保 : updatePolicyFromStatus(依据状态做乐观锁),updateByPrimaryKeySelective 信保 -->> -信保: 事务结束 opt 乐观锁结果:首次更新 信保 ->> 服务编排: 执行后续核保流程 end else 状态为其他终态如“SUCCEED”/“UW_REJECTED” 信保 -->> 信保: log.info(“申请幂等返回”) end 信保 -->> -信贷 : 返回组装的响应对象
Draw.io/Diagrams.net
GUI画图,xml 格式存储,渲染为drawio风格的图画。支持图形较多。
CSS3
3.1. Papaerclip
3.2. Danger Icon
4. SVG
5. HTML
5.1. 表格
5.1.1. 压缩前
BugID |
B-1 | ||
Bug 标题 |
布尔表达式输入框为空时无提示 | ||
软件版本 |
CellCover1.0 |
测试环境 |
1 |
测试人员 |
王艺辉 |
开发人员 |
|
创建时间 |
2020年5月31日 |
Bug状态 |
待解决 |
测试阶段 |
接口测试、 功能测试、 配置测试、 回归测试 | ||
Bug严重程度 |
紧急、 严重、 一般、 轻微 | ||
问题优先级 |
高 、 较高 、 一般 、 低 | ||
问题来源 |
测试、升级、其他 | ||
问题类型 |
功能问题、版本问题、遗留问题、新需求、配置错误、性能问题、设计问题、偶发性错误、其他 | ||
缺陷的触发条件 |
| ||
操作步骤(简) |
1.打开测试用例生成页面 | ||
实际结果 |
无任何结果 | ||
预期结果 |
弹出"请重新输入表达式不为空"的提示框 | ||
附图 |
(如果语言不清楚可附图,图过多可附件) |
5.1.2. 压缩后
BugID | B-1 | ||
Bug 标题 | 布尔表达式输入框为空时无提示 | ||
软件版本 | CellCover1.0 | 测试环境 | 1 |
测试人员 | 王艺辉 | 开发人员 |
|
创建时间 | 2020年5月31日 | Bug状态 | 待解决 |
测试阶段 | 接口测试、 功能测试、 配置测试、 回归测试 | ||
Bug严重程度 | 紧急、 严重、 一般、 轻微 | ||
问题优先级 | 高 、 较高 、 一般 、 低 | ||
问题来源 | 测试、升级、其他 | ||
问题类型 | 功能问题、版本问题、遗留问题、新需求、配置错误、性能问题、设计问题、偶发性错误、其他 | ||
缺陷的触发条件 |
| ||
操作步骤(简) | 1.打开测试用例生成页面 | ||
实际结果 | 无任何结果 | ||
预期结果 | 弹出"请重新输入表达式不为空"的提示框 | ||
附图 | (如果语言不清楚可附图,图过多可附件) |