- 浏览: 226809 次
- 性别:
- 来自: 南京
最新评论
-
张yyyyyy:
不明觉厉
一次sql 调优心得 -
masuweng:
某一类日期范围内每7天一组的销量之和,以及行转列 -
faradayroger:
[color=green][color=red][/color ...
定时JOB,去请求数据,并找出最新数据持久化 -
cainiao1923:
java-lxm 写道 写文章贴个图也不好好贴....难道是网 ...
spring 注入static属性 -
java-lxm:
写文章贴个图也不好好贴
spring 注入static属性
文章列表
二叉搜索树时间复杂度
- 博客分类:
- 数据结构
给定值的比较次数等于给定值节点在二叉排序树中的层数。如果二叉排序树是平衡的,则n个节点的二叉排序树的高度为Log2n+1,其查找效率为O(Log2n),近似于折半查找。如果二叉排序树完全不平衡,则其深度可达到n,查找效率为O(n),退化为顺序查找。一般的,二叉排序树的查找性能在O(Log2n)到O(n)之间。因此,为了获得较好的查找性能,就要构造一棵平衡的二叉排序树。
---------------------
作者:谢小天1990
来源:CSDN
原文:https://blog.csdn.net/xieyutian1990/article/details/38435619
...
演变过程:
二叉树----》二叉搜索树----->AVL树-----》(多路搜索树)B树------》B+树
~~~~~~~~~~~~~~~~~~~~~~~
B树就是查找,是值的树,索引是查找值,在B树里找到值后,返回rowid即记录。
rowid是伪列 记录的位置
一个索引一个B树
聚集索引是主键的 只有一个
非聚集索引普通随便 上限可能是200多
B树是多路搜索树,为了压缩高度,二叉改为多叉,节点含有更多的关键字
平衡了查找更快 O(lg N) =高度 或 减1
最坏情况 O(N)
~~~~~~~~~~~~~~~~~~~~~~~ ...
平衡二叉树及其应用场景
- 博客分类:
- sql
https://blog.csdn.net/huiguixian/article/details/6360682
多路搜索树 & B 树 & B+树 学习笔记
- 博客分类:
- sql
https://www.jianshu.com/p/3e1adaf3024d
一步步分析为什么B+树适合作为索引的结构
- 博客分类:
- sql
https://blog.csdn.net/weixin_30531261/article/details/79312676
引和存放数据物理位置(rowid)之间的关系
- 博客分类:
- oracle
http://www.itpub.net/thread-1626760-1-1.html
https://www.cnblogs.com/xqzt/p/4449184.html
索引是一个"表",它有两个"字段",一个是索引列,一个是rowid,整个索引以索引列排序,索引列相同的话,再以rowid排序。
http://www.itpub.net/thread-144375-1-1.html
驱动表是在使用多表嵌套连接时,会先全表扫描该驱动表,然后驱动表返回的结果集中一行一行去匹配被驱动表(可以利用索引),所以我们会选择小表做为驱动表,而被驱动使用索引进行连接。对于基于规则的优化系统,驱动表在FROM后是有次序设置的(最右边的是驱动表),而在基于成本的优化,ORACLE会选择最合适的驱动表。
The 'driving' table is the table we will join FROM -- that is JOIN TO other tables. For ...
left join 就是关联,右表多出来不相干 关联不上不要,右边少了以空代替,保证左表全出来,如果右边重复记录,则左表关联上部分也重复。总结就是,左表只会多(重复、因右表重复)不会少,右表关联不上则为空。
1 1
1
2 2
a.id=b.id
左边和右边两个都等,左边就会重复一条记录出来
~~~~~~~~~
内连接取交集
左外连接 取左表全部 ,若没有关联上右表为空,内在正常关联。(先关联,若没关联上,则右表用空记录,左表全出来)
1 3
2 4
3 5
得到
1 空
...
oracle收集统计信息
- 博客分类:
- oracle
https://blog.csdn.net/cuiyan1982/article/details/78595146
REFS:http://www.talkwithtrend.com/Article/178469
http://www.itpub.net/forum.php?mod=viewthread&tid=2056849&extra=&highlight=&page=1
https://www.cnblogs.com/zhaoyl/archive/2012/05/04/2483513.html
11
那么,如果在firstname、lastname、age这三个列上分别创建单列索引,效果是否和创建一个firstname、lastname、age的多列索引一样呢?
答案是否定的,两者完全不同。当我们执行查询的时候,MySQL只能使用一个索引。如果你有三个单列的索引,MySQL会试图选择一个限制最严格的索引。但是,即使是限制最严格的单列索引,它的限制能力也肯定远远低于firstname、lastname、age这三个列上的多列索引。
多列索引还有另外一个优点,它通过称为最左前缀(Leftmost Prefixing)的概念体现出来。继续考虑前面的例子,现在我们有一个fi ...
11
我们知道索引列如果出现null值会导致索引失效。具体情况如下:
表中数据如下: 可见storeid列有null值。
当执行查询语句:select * from demo where storeid= '10';时我们通过plsql的sql分析(F5触发)可以看到触发全表查询。
那该如何让该在字段有空值的情况下触发索引呢?
有两种方法:
1、建立函数索引 create index xxx on 表名(列名,1) ----相当于给默认值1
2、建立函数索引create index xxx on 表名( decode(列名 ...
111
回表:在数据中,当查询数据的时候,在索引中查找索引后,获得该行的rowid,根据rowid再查询表中数据,就是回表。
--创建一个表, 索引只建立在object_id上
SQL> create table ml_1 as
2 select * from dba_objects
3 ...
select sql_text,spid,v$session.program,process from
v$sqlarea,v$session,v$process
where v$sqlarea.address=v$session.sql_address
and v$sqlarea.hash_value=v$session.sql_hash_value
and v$session.paddr=v$process.addr
and v$process.spid in (26377,26379,26383,26385,2638 ...