本文作者:ptiyny

j***a语言指定索引 j***a索引怎么用

ptiyny 06-14 30
j***a语言指定索引 j***a索引怎么用摘要: 大家好,今天小编关注到一个比较有意思的话题,就是关于java语言指定索引的问题,于是小编就整理了2个相关介绍java语言指定索引的解答,让我们一起看看吧。oracle时间,建立什么...

大家好,今天小编关注到一个比较意思的话题,就是关于java语言指定索引问题,于是小编就整理了2个相关介绍Java语言指定索引的解答,让我们一起看看吧。

java语言指定索引 java索引怎么用
图片来源网络,侵删)
  1. oracle时间,建立什么索引?
  2. JAVA中几种集合(List、Set和Map)的区别?

oracle时间,建立什么索引?

Oracle中我们经常使用Date字段类型记录日期和时间,有的时候还在这个字段上建立索引。

然后通过JAVA程序访问数据库的时候,我们很自然的类似这样使用:select * from table where endDate>? and endDate<?,然后通过PreparedStatement预编译,再通过setTimestamp传入由j***a.util.Date转成j***a.sql.Timestamp的参数(因为j***a.sql.Date只有日期,j***a.sql.Time只有时间,所以我们只能用j***a.sql.Timestamp类型)。我们会认为这样应该走索引区间扫描,效率应该是非常高的。

而事实上,Oracle会把sql解释成如下这样来执行:select * from table where TO_TIMESTAMP(endDate)>? and TO_TIMESTAMP(endDate)<?; 为什么?因为传入的参数是timestamp类型,Oracle从9.2版本以后支持这种类型,所以Oracle做了这样的转换,结果就是这个SQL执行变成了全表扫描。我们做的试验,加了一个index hint,强制走时间索引字段,结果效率也不高,sql执行变成了全索引扫描,和全表扫描没多大区别。结果效率还是低。

不光直接使用JDBC会是这样,Spring,iBatis在处理传入参数是j***a.util.Date类型的时候,都会使用setTimestamp设定参数,所以都需要注意。

java语言指定索引 java索引怎么用
(图片来源网络,侵删)

J***A中几种集合(List、Set和Map)的区别?

J***a常见的数据结构有Collection和Map,其中Collection接口包括List和Set接口,其下又有多个类如List下有ArrayList、LinkedList和Vector等实现类,Set下有HashSet、LinkedSet等实现类和SortedSet接口,HashSet下有LinkedHashSet子类,SortedSet接口下有TreeSet实现类。Map接口下有HashMap(有LinkedHashMap子类)、HashTable(有Properties子类)实现类和SortedMap接口(有TreeMap实现类)。

J***A的数据结构主要有List、Set、Map、ArrayList、HashSet、HashMap、Properties等。

Map与Set的本质区别有:Set不能包含重复的元素,最多有一个空值,继承自Collection接口,底层是Map实现机制。Map不能包含重复的键,每个键最多对应一个映射的值,不能有空值键。两接口提供方法不完全一样。析:J***a常见的数据结构有Collection和Map,其中Collection接口下包括List和Set接口,其下又有多个实现类如List下有ArrayList、LinkedList和Vector等实现类,Set下有HashSet、LinkedSet等实现类和SortedSet接口,HashSet下有LinkedHashSet子类,SortedSet接口下有TreeSet实现类。Map接口下有HashMap(有LinkedHashMap子类)、HashTable(有Properties子类)实现类和SortedMap接口(有TreeMap实现类)。

J***A的数据结构主要有List、Set、Map、ArrayList、HashSet、HashMap、Properties等。

java语言指定索引 java索引怎么用
(图片来源网络,侵删)

Map与Set的本质区别有:Set不能包含重复的元素,最多有一个空值,继承自Collection接口,底层是Map实现机制。Map不能包含重复的键,每个键最多对应一个映射的值,不能有空值键。两接口提供的方法不完全一样。

到此,以上就是小编对于j***a语言指定索引的问题就介绍到这了,希望介绍关于j***a语言指定索引的2点解答对大家有用。

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享