热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

movelob会不会影响其他索引状态?_MySQL

前几天在客户现场做升级,脚本中movelob字段了,客户继续执行操作的时候,喊索引失效了。经查看,是非lob字段的索引失效,当时没注意,直接rebuild了,半夜回去的路上,经理问我,movelob字段
前几天在客户现场做升级,脚本中move lob字段了,客户继续执行操作的时候,喊索引失效了。经查看,是非lob字段的索引失效,当时没注意,直接rebuild了,半夜回去的路上,经理问我,move lob字段,为什么其他索引会失效?我当时。。。夜深人静时,最佳思考时。思考的结果就是:我发现很多东西我都知道,但究其根本,就有点模糊了。比如:索引,我知道是根据rowid快速找到一行,但是,索引存储的是一列的值(单列索引),会不会存储与其他列的关系呢?。。。。

后来决定通过实验验证,不知道所以然,至少得知道依然呀。怎么着,先知道一个再说先。

--建测试表,含主键
create table dxmy_lob(id number primary key,name blob,sex varchar2(10),location varchar2(100));
select * from dba_lobs d where d.table_name = 'DXMY_LOB';

--插入数据
INSERT INTO DXMY_LOB VALUES(2,to_blob('110111011'),'MAN','SOMEWARE');
COMMIT;

select * from dxmy_lob;

--创建普通索引
create index ind_dxmy on dxmy_lob(sex);

--move前查看索引状态
select d.owner,d.index_name,d.index_type,d.status,d.last_analyzed from dba_indexes d where d.table_name = 'DXMY_LOB';

OWNER	INDEX_NAME	INDEX_TYPE	STATUS	LAST_ANALYZED
LM	IND_DXMY	NORMAL	VALID	2015/12/17 4:29:51
LM	SYS_C0011400	NORMAL	VALID	
LM	SYS_IL0000087754C00002$$	LOB	VALID	

--move走起
alter table lm_lob move lob(name) store as LM_LOB_SEG (tablespace users);

--move之后索引状态
select d.owner,d.index_name,d.index_type,d.status,d.last_analyzed from dba_indexes d where d.table_name = 'DXMY_LOB';

OWNER	INDEX_NAME	INDEX_TYPE	STATUS	LAST_ANALYZED
LM	IND_DXMY	NORMAL	VALID	2015/12/17 4:29:51
LM	SYS_C0011400	NORMAL	VALID	
LM	SYS_IL0000087754C00002$$	LOB	VALID	

正常呀,莫非。。。
\

哎,我灵机一动,以为是复合索引,结果不能建。。

那最大的可能就是客户做了什么操作,是索引失效了。

推荐阅读
author-avatar
手机用户2502876217
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有