作家
登录

MySQL的前缀索引及Oracle的类似实现

作者: 来源: 2018-01-19 08:54:27 阅读 我要评论

没问题,照样可以的。

创建数字类型上的trunc函数索引:

  1. create index test_trunc_number on TEST_SUBSTR(trunc(object_id)); 

实际上,问题的关键在于等价与优化器的内部改写。

建另一个表,相当栏位长度最长为5。

  1. create table test_scale (object_name varchar2(5)); 
  2.  
  3. insert into test_scale select substr(object_name,1,5) from all_objects; 
  4.  
  5. create index test_scale_str_inx in test_scale(object_name);  

来看看这个语句的履行效不雅

神奇的工作再次产生,autotrace中db block gets/consistent gets都为0,这代表数据库根本就没去拜访表。

原因很简单,‘DBA_TABLES’这个值长度大年夜于5, 超出了表定义中的varchar2(5)了。object_name = ‘DBA_TABLES’就等价于恒否的前提了。这个,在10053里也找不到,但切实其实存在。

【编辑推荐】

  1. 一个真实案例,教会你数据库机能调优
  2. 一篇控制MySQL,Oracle和PostgreSQL数据库体系架构
  3. SQL Server、MySQL、Oracle三种数据库的优缺点比较,这一文够了
  4. 回想2017年宣布的┞封10个新数据库体系
  5. MySQL主大年夜同步架构中你不知道的“坑”
【义务编辑:庞桂玉 TEL:(010)68476606】

  推荐阅读

  Memory Cleaner——简单好用的Windows内存优化工具

年前最后一场技巧盛宴 | 1月27日与京东、日记易技巧大年夜咖畅聊智能化运维成长趋势!Windows 操作体系在没有效户干涉的情况下可以相当有效地治理计算机内存的应用情况,但不是说就没有可以优化和改进的>>>详细阅读


本文标题:MySQL的前缀索引及Oracle的类似实现

地址:http://www.17bianji.com/lsqh/40347.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)