本文主要给大家介绍MySQL8.0特性之不可见索引讲析,希望可以给大家补充和更新些知识,如有其它问题需要了解的可以持续在开发云行业资讯里面关注我的更新文章的。MySQL8.0新特性——不可见索引(Invisible Indexes)MySQL8.0开始支持看不见的索引。一个看不见的索引根本不被优化器使用,但是通常是保持正常的。默认情况下索引是可见的。不可见的索引使测试在查询性能上删除索引的效果成为可能,而不需要在需要索引的情况下进行破坏性的更改。注意:
该特性适用于除主键以外的索引(显式或隐式)默认情况下索引是可见的!。将index设置为invisible,会导致优化器在选择执行计划时,自动忽略该索引,即便使用了FORCE INDEX1、创建测试表t1,并创建3个不可见索引
2、修改索引为可见状态,也就是可使用的状态注意:主键索引是不能被设为不可见索引的!!!!!
一个没有显式主键的表可能仍然有开发云主机域名一个有效的隐式主键,如果它在非空列上有任何惟一的索引。在这种情况下,第一个这样的索引将同样的约束放在表中行上,作为一个显式的主键,而该索引不能被忽略。如下:
3、创建测试表:t2,并设置唯一索引:j_idx(这个表没有明确主键,但是在NOT NULL列j上的索引在行上放置了相同的约束,可以作为主键)3.1、将索引设置为不可见索引:会发现报错mysql> ALTER TABLE t2 ALTER INDEX j_idx INVISIBLE;ERROR 3522 (HY000): A primary key index cannot be invisible (报错是因为:虽然这个表没有明确的主键,但是在NOT NULL列j上的索引在行上放置了相同的约束,作为主键,不能被忽略:)
3.2、增加一个主键,如下:
3.3、这时候,将j_idx索引设置为不可见状态是可以的,如:从上面可以看出,已经存了显示的主机,而j_idx唯一索引不再充当隐式主键,因此可以将其设置为不可见状态。
4、日常操作:
–创建表指定索引为不可见状态:create table t1(id int primary key,name varchar(10),index idx_name (name) invisible);
–修改索引为可见状态:alter table t1 alter index idx_name visible;
–修改索引为不可见状态:alter table t1 alter index idx_name invisible;
–查看数据库中有哪些不可见索引:mysql> select table_schema,table_name,index_name,column_name,is_visible from information_schema.statistics where is_visible=’no’;看了以上关于MySQL8.0特性之不可见索引讲析,希望能给大家在实际运用中带来一定的帮助。本文由于篇幅有限,难免会有不足和需要补充的地方,如有需要更加专业的解答,可在官网联系我们的24小时售前售后,随时帮您解答问题的。
这篇文章主要讲解了MySQL备份数据库的方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。一提到数据,大家神经都会很紧张,数据的类型有很多种,但是总归一点,数据很重要,非常重要,因此,日常的数据备份工作就成了运维工作的重点中的重点…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。