您现在的位置:首页 --> 查看专题: 索引
背景:在一般的数据库书籍中,简述到如何合理创建索引时都会出现这么一段话:“索引能提高sql的执行效率,但是过多不合理的索引也会影响数据库的性能”过度索引是如何影响数据库的性能的呢?1。 在执行sql之前,数据库会根据metadata信息决定该使用哪个索引,如果索引过多会影响这一步骤的效率。2。 由于每次数据更新和插入都要更新索引,因此会影响相关操作的效率而第一点就是本文的讨论重点所在。过度索引是否真的会影响sql执行...
这篇文章基于 fastbit 软件包,加以实际的用例对常用的 bitmap 索引算法进行了一个较为系统的介绍。不过生成 bitmap 索引仅仅是第一步,bitmap 索引在存储时会有很大的开销,在不损害(较少损害)查询效率的情况下,对 bitmap 索引进行有效的压缩是一个非常有挑战性的课题。除了 bitmap 索引的生成和存储之外,在不同类型的 bitmap 索引上实现高效的各种类型的查询,也是一个值得进一步探讨的问题。我们很高兴地看到 fastbit 软件包实现了很多这些相关领域的算法,为我们提供了非常宝贵的资料。
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收集该虚拟索引的统...
网络上有多篇介绍Oracle索引实现机制的文章,都提及需要经常重建索引.在这些文章中的某处,总是会出现这样一段简短的描述,索引会如何变的不平衡,以及可能导致的后果.很不幸,它们好像忽视了这样一个事实,Oracle使用的B-tree机制是一种”平衡B-tree”索引,也就是说,索引无法变得不平衡.
标题的这个问题可能是在Metalink论坛与Usenet新闻组出现的最频繁的问题了.这篇文章使用一个测试用例(可以在你自己的系统来重现的)来演示基于成本的优化器的基本工作原理.在看完这篇文章之后,当再次遇到这个令人讨厌的问题时,你应该就可以自信的解答了.
作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究. 表的结构:对于MySQL把有的存储引擎都是把表结构的定义存放到.frm文件中。但对于Innodb表同时有一个内部的字典存放到表空间中。所以对于Innodb表不能单纯的移动.frm在不同的MySQL事例下。对于Innodb引擎的表,如果MySQL 删除相应的表或数据库,同时会删除相应的.frm及在表空间的相应...
在这篇文章里,给大家简单介绍一下本人对Oracle索引的理解,如有不妥的地方,请不吝指教。本文只讲最最平常最最简单的索引,就是以create index ix on tx(a,b,c);形式创建的索引,而不讲位图索引、反向键索引、倒序索引、基于函数的索引等等。其实呢,只要是基于B树的索引,不管是在Oracle, Mysql,还是其它数据库中,原理应当都是一样的。索引最重要的一个性质应该就是有序,索引中的每一项,是从左到右,从小到大,以严格的顺序...
Mysql 4.0 开始就支持全文索引功能,但是 Mysql 默认的最小索引长度是 4。对于英文来说,这个设置是合理的,但是对于中文或者日文,这个设置就很不合理。so,修改mysql的配置(my.cnf文件):在 [mysqld] 后面加入一行fft_min_word_len = nn为小于4的数字。重启mysql即可。
有谁试过一张表上有50个索引,嗯,我不怎么敢。但有时有些应用的搜索条件就是很复杂,比如说有一类应用,姑且称之为多维度分类排行榜吧。这类应用的共同特征是对一个集合需要应用多种条件组合进行过滤,过滤后可能还要按某种指标进行排序。举几个例子吧:1. 像网易拍拍一样的相册精华区,过滤条件非常多,如可以指定一级分类(如风景)、二级分类(如云南)、三级分类(如香格里拉),可以指定城市,可以指定是不是推荐的,还可以...
针对select * from table where col1 > number order by col2 desc。 其实按照常规的方法可以这样设计:key(col1, col2) 但是这种办法在mysql里不算是理想的,where条件里限定索引前部分是一个范围的情况下后面的order by还是会有filesort。如果where条件里限定索引前部分是一个常量,那么order by就会有效利用索引。
先说骗子。这年头骗子真多。刚才拨打一个网上搜索的特价飞机订票热线400-6064-***,对方叫我直接去建设银行上汇钱再给出票,还给了一个个人的建设银行账户。明显就是骗子,还好老婆提醒我不贪图小利,警防骗子,不然我真去银行傻汇了。在此提醒大家出行注意安全。 Oracle的组合索引操作有2种,access和filter,当然access更好。Mysql在组合索引上,只有access,没有filter。因此要注意MYSQL处理where clause包括多个range条件的SQL...
关于如何建立索引,及哪些情况适合使用索引,哪些情况不适合使用索引,各种书籍资料有很多。但是最重要的原则是:实际测试。实践是检验真理的唯一标准。建立索引的时候,应进行如下测试:1 explain select语句,看看是否有使用到索引。2 运行update和insert操作,看看建立索引的负效应是否在可接受范围。3 务必在接近生产环境的数据规模下进行索引性能的测试。
当你接手一个系统时,通常是从检查系统负载,cpu、内存使用率开始,查看statspack top5等待事件,逻辑读、物理读排名靠前的sql语句等等,然后进行初步的优化。而随着业务的深入了解,你开始从系统的角度去考虑据库设计,考虑应用实现的合理性,是否有更好的改进方案等。假设通过statspack报表找到了很耗资源的sql,表分析过,执行计划也是走索引,这种情况下怎么去判断 sql是优化的呢?1.提取逻辑读排名靠前的sql 6,813,699 ...
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...
[ 共35篇文章 ][ 第2页/共2页 ][ 1 ][ 2 ]
近3天十大热文
- [55] Oracle MTS模式下 进程地址与会话信
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [54] 如何拿下简短的域名
- [53] 图书馆的世界纪录
- [53] android 开发入门
- [52] Go Reflect 性能
- [49] 【社会化设计】自我(self)部分――欢迎区
- [49] 读书笔记-壹百度:百度十年千倍的29条法则
- [38] 程序员技术练级攻略
- [32] 视觉调整-设计师 vs. 逻辑
赞助商广告