MySQL 8.0新特性-不可见索引
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,官方文档: https://dev.mysql.com/doc/refman/8.0/en/invisible-indexes.htmlMySQL 8.0 invisible index学习MySQL
千家信息网最后更新 2026年11月03日MySQL 8.0新特性-不可见索引
官方文档: https://dev.mysql.com/doc/refman/8.0/en/invisible-indexes.html
MySQL 8.0 invisible index学习
MySQL支持不可见索引,即优化器不会使用该索引。 不可见索引特性不可以用于主键。
默认索引是可见的。可以在create table、create index、alter table操作中使用关键字visible、invisible来指定索引是否可见。
create table t1 ( i int, j int, k int, index i_idx (i) invisible) engine = innodb;create index j_idx on t1 (j) invisible;alter table t1 add index k_idx (k) invisible;
修改已经存在的索引的可见性:
alter table t1 alter index i_idx invisible;alter table t1 alter index i_idx visible;
可以通过information_schema.statistics、show index查看索引的可见性:
>select index_name, is_visible-> from information_schema.statistics-> where table_schema = 'abce' and table_name = 't1';+------------+------------+| INDEX_NAME | IS_VISIBLE |+------------+------------+| i_idx | NO |+------------+------------+1 row in set (0.00 sec)>show index from t1;+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | Expression |+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+| t1 | 1 | i_idx | 1 | i | A | 0 | NULL | NULL | YES | BTREE | | | NO | NULL |+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+1 row in set (0.00 sec)
不可见索引可以用来测试移除索引后对查询性能的影响。 毕竟对于大表,删除和重建索引是非常昂贵的操作。 系统变量optimizer_switch中的use_invisible_indexes标志控制了优化器是否使用不可见索引来构建执行计划。 如果use_invisible_indexes=off(默认设置),优化器会忽略不可见索引;如果设置为on,索引仍然不可见,但是优化器在生成执行计划的时候会考虑不可见索引。
化器在生成执行计划的时候会考虑不可见索引。
mysql>show variables like '%optimizer_switch%'index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=on,mrr=on,mrr_cost_based=on,block_nested_loop=on,batched_key_access=off,materialization=on,semijoin=on,loosescan=on,firstmatch=on,duplicateweedout=on,subquery_materialization_cost_based=on,use_index_extensions=on,condition_fanout_filter=on,derived_merge=on,use_invisible_indexes=off,skip_scan=on |返回行数:[1],耗时:14 ms.
举例:

alter table t1 alter index i_idx invisible;
索引设置为不可见,优化器便不考虑此索引,也就是说如果没有该特性,你就得删除该索引和重建该索引来测
索引
特性
时候
生成
昂贵
也就是
也就是说
关键
关键字
变量
可以通过
官方
性能
文档
标志
系统
学习
影响
控制
支持
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
华服互联网科技怎么样
蓝思科技飞鸽互联网
互联网科技有限公司经营范围
科技互联网政务服务
北京互联网科技
沃里互联网科技
深圳艾佳互联网科技
中正互联网科技招聘
互联网科技与管理
互联网金融科技展
互联网新科技动漫ppt素材
互联网第三次科技革命特征
电子商务与互联网科技的关系
广州百诚互联网科技有限公司官网
互联网科技机房
兰石爱特工业互联网科技分公司
科技互联网经济论坛
保山浩联互联网科技有限公司
河南商务圈互联网科技有限公司
武汉亿视互联网科技有限公司
手冲咖啡和咖啡机区别
苏州找大状互联网科技有限公司
科技互联网龙头
平安科技 互联网
小马过河互联网科技
长亮科技 互联网金融
宁波青枫互联网科技有限公司
互联网保险科技创业
富国互联网科技002692
华人运通互联网科技公司