1.1 数据结构
来源:互联网 发布:excel中vba编程 编辑:程序博客网 时间:2024/06/15 22:18
sql型数据库通常使用B+树存储index(红黑树?存疑),相比B树,B+树所有数据节点都在最底层,并且每个节点都会存储下一个节点的指针,在between/>/<操作的时候可以获得很好的时间复杂度,优于B树(存疑)。
由于每次插入/删除操作都需要同时修改index,所以不合适的index反而会拖慢数据库性能。(例如插入n个数据,在没有索引时时间复杂度是O(n),有索引时时间复杂度是O(n*log(n)),耗时时间与索引数量近似成正比。)在查询操作远多于增删改操作时,index会获得较好的性能。
hash表可以丧心病狂地减少时间复杂度,当然也会丧心病狂地增加空间复杂度……文中没有详细说明hash表的使用场景,目测在表连接的时候hash表会获得较高的性能。
如
CREATE TABLE t1(a,b); CREATE TABLE t2(c,d); -- Insert many rows into both t1 and t2 SELECT * FROM t1, t2 WHERE a=c;
(from https://www.sqlite.org/optoverview.html)
对a和c使用hash表建立索引效率会提高很多(时间复杂度O(n))。然而根据sqlite官网上的介绍,这种情况下sqlite使用的是O(n*log(n))的索引,想不通。
阅读全文
0 0
- 1.1 数据结构
- 1.1 数据结构简介
- 数据结构1.1,1.2
- 《数据结构》 实验1.1
- 《数据结构》 实验1.1
- 1.1数据结构基本概念
- 1.1什么是数据结构
- 数据结构1.1-顺序表
- 数据结构
- 数据结构
- 数据结构
- 数据结构
- 数据结构
- 数据结构
- 数据结构
- 数据结构
- 数据结构
- 数据结构
- 强化学习(Reinforcement Learning)的方法分类
- Funny Function
- Spinner弹出框遮挡住显示框的解决办法
- 欢迎使用CSDN-markdown编辑器
- add-apt-repository问题
- 1.1 数据结构
- R语言编程:阿里推笔试题之一
- 第二天总结
- java中的抽象类
- Unity3D之UI按键绑定事件(六)
- C++开源项目
- 神经网络与深度学习 1.5 使用梯度下降算法进行学习
- 排版的一点小注意
- 对象和类的关系