楼主: 艾利_

[SQL] 内容的关键字查询

[复制链接]
论坛徽章:
2
乌索普
日期:2016-11-28 11:16:45秀才
日期:2016-12-21 16:55:07
11#
发表于 2016-11-21 15:54 | 只看该作者
〇〇 发表于 2016-11-21 15:51
可以想办法绕过去,比如where xxx is not null

那大佬,你的意思是就算表里的索引列上有空数据,也可以通过条件筛选出来,然后让结果走索引吗?

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
12#
发表于 2016-11-21 16:14 | 只看该作者
jrtongxin5266 发表于 2016-11-21 15:54
那大佬,你的意思是就算表里的索引列上有空数据,也可以通过条件筛选出来,然后让结果走索引吗?


SQL> create table nulltab(a int,b int);

表已创建。

已用时间:  00: 00: 02.27


SQL> insert into nulltab values(null,2);

已创建 1 行。

已用时间:  00: 00: 00.01
SQL> insert into nulltab values(3,4);

已创建 1 行。

已用时间:  00: 00: 00.01
SQL> commit;

提交完成。

已用时间:  00: 00: 00.01
SQL> select * from nulltab;

         A          B
---------- ----------
                    2
         3          4

已用时间:  00: 00: 00.00
SQL> create index nullidx on nulltab(a);

索引已创建。

已用时间:  00: 00: 00.15
SQL> set autot on
SP2-0618: 无法找到会话标识符。启用检查 PLUSTRACE 角色
SP2-0611: 启用 STATISTICS 报告时出错
SQL> select /*+index(nulltab,nullidx)*/* from nulltab where a is not null;

         A          B
---------- ----------
         3          4

已用时间:  00: 00: 00.01

执行计划
----------------------------------------------------------
Plan hash value: 4242282698

---------------------------------------------------------------------------------------
| Id  | Operation                   | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |         |     1 |    26 |     2   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| NULLTAB |     1 |    26 |     2   (0)| 00:00:01 |
|*  2 |   INDEX FULL SCAN           | NULLIDX |     2 |       |     1   (0)| 00:00:01 |
---------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - filter("A" IS NOT NULL)

Note
-----
   - dynamic sampling used for this statement (level=2)


使用道具 举报

回复
论坛徽章:
2
乌索普
日期:2016-11-28 11:16:45秀才
日期:2016-12-21 16:55:07
13#
发表于 2016-11-21 16:54 | 只看该作者
〇〇 发表于 2016-11-21 16:14
SQL> create table nulltab(a int,b int);

表已创建。

谢谢大佬

使用道具 举报

回复
论坛徽章:
2
乌索普
日期:2016-11-28 11:16:45秀才
日期:2016-12-21 16:55:07
14#
发表于 2016-11-21 16:55 | 只看该作者
〇〇 发表于 2016-11-21 16:14
SQL> create table nulltab(a int,b int);

表已创建。

这学习还不能是只看书,还是要动手实践,非常感谢大佬。

使用道具 举报

回复
论坛徽章:
520
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
15#
发表于 2016-11-22 05:33 | 只看该作者

索引有啥用?还不是得笛卡尔积?
把content分词然后按多行存储。

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
16#
发表于 2016-11-22 07:50 | 只看该作者
newkid 发表于 2016-11-22 05:33
索引有啥用?还不是得笛卡尔积?
把content分词然后按多行存储。

http://www.itpub.net/thread-2071677-1-1.html
这个帖索引有用

使用道具 举报

回复
论坛徽章:
4
天枰座
日期:2016-01-08 11:40:13秀才
日期:2016-02-18 10:06:46秀才
日期:2016-12-21 16:55:07娜美
日期:2018-11-16 11:38:36
17#
 楼主| 发表于 2016-11-22 10:55 | 只看该作者
newkid 发表于 2016-11-22 05:33
索引有啥用?还不是得笛卡尔积?
把content分词然后按多行存储。

分词,按多行存储是什么意思?
我还想着是不是要将 “内容表" 分表或者设置多个分区呢?

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
18#
发表于 2016-11-22 11:07 | 只看该作者
艾利_ 发表于 2016-11-22 10:55
分词,按多行存储是什么意思?
我还想着是不是要将 “内容表" 分表或者设置多个分区呢?

content是blob?varchar?
给出建表脚本和测试数据

使用道具 举报

回复
论坛徽章:
4
天枰座
日期:2016-01-08 11:40:13秀才
日期:2016-02-18 10:06:46秀才
日期:2016-12-21 16:55:07娜美
日期:2018-11-16 11:38:36
19#
 楼主| 发表于 2016-11-22 11:27 | 只看该作者
〇〇 发表于 2016-11-22 11:07
content是blob?varchar?
给出建表脚本和测试数据

哦。我不是oracle的库。oracle的库只存放最终的计算数据。
content 是存放的是 产品描述 (类似淘宝的商品 描述)
这类数据比较大,是存放在hdfs的,string类型。
这种的是没有索引的。但是可设置多个分区。

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
20#
发表于 2016-11-22 21:36 | 只看该作者
艾利_ 发表于 2016-11-22 11:27
哦。我不是oracle的库。oracle的库只存放最终的计算数据。
content 是存放的是 产品描述 (类似淘宝的商 ...

那是什么数据库?文档数据库?那oracle的很多方法都无效了

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表