索引的问题,这种情况是使用复合索引还是单个索引?? 高手快来

ndb96 ndb96 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
oracle9i

create table test(
id number(9),
mobile varchar2(15),
service_name varchar2(20),
service_id varchar2(20),
content varchar2(400),
get_time date);

这个表以后可能要有几百万的数据,以下是经常要用到的查询语句
select * from test where mobile='xxxxx';
select * from test where id=xxxx;
select * from test where service_id='xxxxx';

select * from test where to_chr(get_time,'yyyymm')='xxxx' and mobile='xxxxx';

select * from test where to_chr(get_time,'yyyymm')='xxxx' and service_id='xxxxx';

第一个问题:如何建立索引才能达到很好的查询效果?

第二个问题:get_time字段建表时是用date类型好,还是换成varchar2类型好,那种会让以后的查询更快?
...全文

相关推荐

Oracle复合索引与空值的索引使用问题小结

昨天在QQ群里讨论一个SQL优化的问题,语句大致如下: select A,min(B) from table group by A;--A,B都没有not null约束,A列无空值,B列有空值。--存在复合索引IX_TEST(A,B) 于是手动测试,环境采用Oracle自带的scott用户下的emp表。 1.首先查看如下语句的执行计划(此时表只有主键索引): 2.添加IX_TEST(deptno,comm)后查看执行计划: 发现依然是全表扫描。 3.为deptno列添加非空约束后再次查看执行计划: 4.总结: Btree索引是不存储空值的,这个是所有使用Btree索引的数据库的共同

weixin_38734037

SQLServer的复合索引学习.docx

SQLServer的复合索引学习.docx

进击的朱亚文

多列复合索引的使用 绕过微软sql server的一个缺陷

多列复合索引是指由多个字段组成的索引。这种情况相当常用的,并且,在查询中,用多列复合索引来指定搜索范围边界也相当常用

weixin_38528939

深入理解MongoDB的复合索引

为什么需要索引? 当你抱怨MongoDB集合查询效率低的时候,可能你就需要考虑使用索引了,为了方便后续介绍,先科普下MongoDB里的索引机制(同样适用于其他的数据库比如mysql)。 mongo-9552:PRIMARY> db.person.find() { "_id" : ObjectId("571b5da31b0d530a03b3ce82"), "name" : "jack", "age" : 19 } { "_id" : ObjectId("571b5dae1b0d530a03b3ce83"), "name" : "rose", "age" : 20 } { "_id" : Obj

weixin_38687648

简单例子理解主键,索引,聚集索引,复合索引,非聚合索引

测试数据以及表结构 一、 创建主键(主键=主键索引=聚集索引) 主键是什么? 答:拿主键可以唯一确定一条数据,它和物理存储排序一致,不能为空,一个表只能有一个。 原本没有创建的主键的表在磁盘上存储为: Id=0;username=username0;sex=男;address=浙江; Id=1;username=username1;sex=女;address=北京; Id=2;username=username2;sex=男;address=北京; 在创建主键之后变成了如下图树结构: 通过上图展示之后,大数据下不加主键查询速度为O(n),B-TREE查询速度为O(log n)。你想啊,不加

weixin_38704156
评论 7
收藏 已收藏
分享
返回顶部
ndb96
基础和管理 17,377 成员 95,111 内容