IT技术博客大学习 共学习 共进步

标签:索引

共 35 篇相关文章

IT 浏览 4,520

冗余索引对查询效率的影响

背景:在一般的数据库书籍中,简述到如何合理创建索引时都会出现这么一段话:“索引能提高sql的执行效率,但是过多不合理的索引也会影响数据库的性能”过度索引是如何影响数据库的性能的呢?1。 在执行sql之前,数据库会根据metadata信息决定该使用哪个索引,如果索引过多会影响这一步骤的效率。2。 由于每次数据更新和插入都要更新索引,因此会影响相关操作的效率而第一点就是本文的讨论重点所在。过度索引是否真的会影响sql执行...

IT 浏览 5,140

Fastbit中的bitmap索引算法

这篇文章基于 fastbit 软件包,加以实际的用例对常用的 bitmap 索引算法进行了一个较为系统的介绍。不过生成 bitmap 索引仅仅是第一步,bitmap 索引在存储时会有很大的开销,在不损害(较少损害)查询效率的情况下,对 bitmap 索引进行有效的压缩是一个非常有挑战性的课题。除了 bitmap 索引的生成和存储之外,在不同类型的 bitmap 索引上实现高效的各种类型的查询,也是一个值得进一步探讨的问题。我们很高兴地看到 fastbit 软件包实现了很多这些相关领域的算法,为我们提供了非常宝贵的资料。

IT 浏览 3,540

ORACLE BITMAP INDEX

 bitmap我们可能平时使用的不多,但是觉得它在特殊的应用场景,还 是有优势的。bitmap join index更是一种多表JOIN的新方式,很有意思。

IT 浏览 3,160

Virtual Indexes

Oracle11g 中有个invisiable index的新功能,它的前身或许就是virtual index (虚拟索引)。在建新索引的时候,Virtual Index和invisiable index都可以用来确保其他SQL的执行计划不会改变。特别是当表上索引结构比较复杂,为了优化某个SQL而新建的索引可能会导致其它SQL执行计划变糟糕。 CREATE INDEX INDEX_NAME ON TABLE_NAME (INDEX_COLUMN) NOSEGMENT; 建立虚拟索引后,可以使用dbms_stats.generate_stats收集该虚拟索引的统...

IT 浏览 2,680

不平衡的索引?

网络上有多篇介绍Oracle索引实现机制的文章,都提及需要经常重建索引.在这些文章中的某处,总是会出现这样一段简短的描述,索引会如何变的不平衡,以及可能导致的后果.很不幸,它们好像忽视了这样一个事实,Oracle使用的B-tree机制是一种”平衡B-tree”索引,也就是说,索引无法变得不平衡.

IT 浏览 2,420

为什么Oracle不使用我的索引?!

标题的这个问题可能是在Metalink论坛与Usenet新闻组出现的最频繁的问题了.这篇文章使用一个测试用例(可以在你自己的系统来重现的)来演示基于成本的优化器的基本工作原理.在看完这篇文章之后,当再次遇到这个令人讨厌的问题时,你应该就可以自信的解答了.

IT 浏览 6,040

Innodb 表和索引结构

作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究. 表的结构:对于MySQL把有的存储引擎都是把表结构的定义存放到.frm文件中。但对于Innodb表同时有一个内部的字典存放到表空间中。所以对于Innodb表不能单纯的移动.frm在不同的MySQL事例下。对于Innodb引擎的表,如果MySQL 删除相应的表或数据库,同时会删除相应的.frm及在表空间的相应...

IT 浏览 2,580

Oracle索引abc

在这篇文章里,给大家简单介绍一下本人对Oracle索引的理解,如有不妥的地方,请不吝指教。本文只讲最最平常最最简单的索引,就是以create index ix on tx(a,b,c);形式创建的索引,而不讲位图索引、反向键索引、倒序索引、基于函数的索引等等。其实呢,只要是基于B树的索引,不管是在Oracle, Mysql,还是其它数据库中,原理应当都是一样的。索引最重要的一个性质应该就是有序,索引中的每一项,是从左到右,从小到大,以严格的顺序...

IT 浏览 3,180

mysql的全文索引限制

Mysql 4.0 开始就支持全文索引功能,但是 Mysql 默认的最小索引长度是 4。对于英文来说,这个设置是合理的,但是对于中文或者日文,这个设置就很不合理。so,修改mysql的配置(my.cnf文件):在 [mysqld] 后面加入一行fft_min_word_len = nn为小于4的数字。重启mysql即可。

IT 浏览 5,060

多维度分类排行榜应用:用位图索引

有谁试过一张表上有50个索引,嗯,我不怎么敢。但有时有些应用的搜索条件就是很复杂,比如说有一类应用,姑且称之为多维度分类排行榜吧。这类应用的共同特征是对一个集合需要应用多种条件组合进行过滤,过滤后可能还要按某种指标进行排序。举几个例子吧:1. 像网易拍拍一样的相册精华区,过滤条件非常多,如可以指定一级分类(如风景)、二级分类(如云南)、三级分类(如香格里拉),可以指定城市,可以指定是不是推荐的,还可以...

IT 浏览 3,180

mysql索引的一个技巧

针对select * from table where col1 > number order by col2 desc。 其实按照常规的方法可以这样设计:key(col1, col2) 但是这种办法在mysql里不算是理想的,where条件里限定索引前部分是一个范围的情况下后面的order by还是会有filesort。如果where条件里限定索引前部分是一个常量,那么order by就会有效利用索引。

IT 浏览 2,300

Mysql combine index

先说骗子。这年头骗子真多。刚才拨打一个网上搜索的特价飞机订票热线400-6064-***,对方叫我直接去建设银行上汇钱再给出票,还给了一个个人的建设银行账户。明显就是骗子,还好老婆提醒我不贪图小利,警防骗子,不然我真去银行傻汇了。在此提醒大家出行注意安全。 Oracle的组合索引操作有2种,access和filter,当然access更好。Mysql在组合索引上,只有access,没有filter。因此要注意MYSQL处理where clause包括多个range条件的SQL...

IT 浏览 4,560

如何建立索引

关于如何建立索引,及哪些情况适合使用索引,哪些情况不适合使用索引,各种书籍资料有很多。但是最重要的原则是:实际测试。实践是检验真理的唯一标准。建立索引的时候,应进行如下测试:1 explain select语句,看看是否有使用到索引。2 运行update和insert操作,看看建立索引的负效应是否在可接受范围。3 务必在接近生产环境的数据规模下进行索引性能的测试。

IT 浏览 6,660

如何建立合适的索引?

当你接手一个系统时,通常是从检查系统负载,cpu、内存使用率开始,查看statspack top5等待事件,逻辑读、物理读排名靠前的sql语句等等,然后进行初步的优化。而随着业务的深入了解,你开始从系统的角度去考虑据库设计,考虑应用实现的合理性,是否有更好的改进方案等。假设通过statspack报表找到了很耗资源的sql,表分析过,执行计划也是走索引,这种情况下怎么去判断 sql是优化的呢?1.提取逻辑读排名靠前的sql 6,813,699 ...

IT 浏览 2,760

Index Full Scans和Fast Full Index Scans的区别

Index Full ScansA full scan is available if a predicate references one of the columns in the index. The predicate does not need to be an index driver. A full scan is also available when there is no predicate, if both the following conditions are met:All of the columns in the table referenced in the query are included in the index.At least one of the index columns is not null.A full scan can be use...