社区
基础和管理
帖子详情
数据库函数索引为什么不起作用(300万条记录)
gold_future
2004-11-07 09:44:19
建索引 create index myIndex on myTable (LOWER(NAME))
查询 select * from myTable where UPPER(NAME)='中国'
...全文
284
11
打赏
收藏
数据库函数索引为什么不起作用(300万条记录)
建索引 create index myIndex on myTable (LOWER(NAME)) 查询 select * from myTable where UPPER(NAME)='中国'
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gold_future
2004-11-08
打赏
举报
回复
已解决
select /* index 表名 索引名*/ myName from myTable wherre lower(myName )='abcd'
tonymanager
2004-11-08
打赏
举报
回复
Where条件中,如果=左边的字段有函数,索引是不起作用的.
如: To_Char(Name),upper(Name)
Croatia
2004-11-08
打赏
举报
回复
to: biliky()
你这样的做法是不对的,和搂主的提问的初衷,不一致了。
zhaokeke2004
2004-11-08
打赏
举报
回复
楼主为什么中文也要用upper函数?
qiyousyc
2004-11-08
打赏
举报
回复
应该是select * from myTable where NAME=LOWER('中国');
系统会自动找到并使用索引的。
biliky
2004-11-08
打赏
举报
回复
try as follows:
select * from myTable where NAME=LOWER('中国');
LGQDUCKY
2004-11-08
打赏
举报
回复
可能也与优化器有关,因为中文没有大小写之分,你试下英文,然后在看下
执行计划,LOWER(NAME)='中国'
zmgowin
2004-11-08
打赏
举报
回复
在不考虑优化器的情况下,要创建基于函数的索引
首先要对用户赋query rewrite权限
grant query rewrite to user_name;
然后需要设置环境变量
query_rewrite_enabled=true
query_rewrite_integrity=trusted
最后再创建基于函数的索引,否则是不能生效的
wupangzi
2004-11-08
打赏
举报
回复
你怎么判断出来,他不起作用呢?
gold_future
2004-11-08
打赏
举报
回复
ss
gold_future
2004-11-07
打赏
举报
回复
写错了
建索引 create index myIndex on myTable (LOWER(NAME))
查询 select * from myTable where LOWER(NAME)='中国'
数据库
索引
的数据结构和原理介绍
一、引言 在操作
数据库
时,如果我们建一个没加主键的表,那么当我们向表中插入数据时,这些数据会无序的存放在磁盘存储器上,一行一行的排列的很整齐, 这跟我们认知中的表很接近。当我们要查询表中数据时,这时就要拿着查询条件一条一条逐一的与
数据库
中的数据进行比较,如果匹配到的数据正好是最后一条,这样就把所有的数据都匹配了一遍。如果
数据库
中只有几百条数据,这样的查询或许不会让你抓狂,但如果
数据库
中有几十万甚至...
给
数据库
建
索引
的规则
给
数据库
建
索引
的规则 建立
索引
常用的规则如下: 1、表的主键、外键必须有
索引
; 2、数据量超过
300
的表应该有
索引
; 3、经常与其他表进行连接的表,在连接字段上应该建立
索引
; 4、经常出现在Where子句中的字段,特别是大表的字段,应该建立
索引
; 5、
索引
应该建在选择性高的字段上; 6、
索引
应该建在小字段上,对于大的文本字段甚至超长字段,不
研发笔试题目+Sql
数据库
索引
优化语句
研发笔试题目+Sql
数据库
索引
优化语句
有哪些常见的
数据库
优化方法
数据库
优化这个话题很大,我从最常见的也是最有效的优化手段
索引
优化的角度来回答一下: 系统的性能瓶颈很多时候都出现在
数据库
,而
数据库
的性能优化最先入手之处应当是
索引
,通过
索引
的优化可以用最少的成本获得最大的性能提升。 我们来通过一个例子看看
索引
对
数据库
查询效率的影响: 先创建一个数据表: CREATE TABLE `tb_user` ( `id` BIGINT (20), `user_name` VARCHAR (200) ) ENGINE=MYISAM; 编写存储过程插入
300
万条
记录
D
Oracle
数据库
解决NULL值不走B树
索引
B树
索引
我们可以把它看成是书的目录,在这个目录中主要
记录
的是
索引
所对应的表列的值和这个值所对应的ROWID。在通常情况下,我们在表中增加
索引
的目的是增加表的查询性能,但是有几种情况,即使你在表中加入了
索引
,Oracle也不会执行
索引
。下面来说明一下其中一种不走
索引
的情况--null值不入
索引
。 以下的说明
索引
只针对B树
索引
,对于位图
索引
,是可以
记录
NULL值的。 首先需要说明的是,有的人会认为...
基础和管理
17,377
社区成员
95,127
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章