MySQL 8.0新特性-不可见索引
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,官方文档: https://dev.mysql.com/doc/refman/8.0/en/invisible-indexes.htmlMySQL 8.0 invisible index学习MySQL
千家信息网最后更新 2025年11月10日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安全错误
数据库的锁怎样保障安全
声卡录歌软件开发
银行软件开发项目经理的任命
学校网络技术考试内容
上海筱仙网络技术有限公司
专科软件开发哪个学校好
唐山直销软件开发公司电话
王者荣耀加速服务器怎么关闭
勤工俭学数据库系统
免费 svn服务器
网络安全手抄报不要这个
公司网络安全应急领导小组
河南省网络安全舆情指挥
msde数据库密码忘记
武汉理工大学网络安全与信息化
神经网络技术路线
服装数据库报告
荔湾区举办网络安全周
联想服务器分类
南京2年软件开发经验
关于网络安全费用预算的报告
杭州软件开发培训一般多少钱
境外代理服务器地址
centos扫描服务器开放端口
数据库文件提供
河北服务器电源购买
云南警官学院空间网络安全
源文件的数据库
1.7.10服务器地址
六安点餐系统软件开发
福建自行车软件开发