MySQL8.0中invisible index特点及作用
admin
2023-04-20 11:04:24
0

不知道大家之前对类似MySQL8.0中invisible index特点及作用的文章有无了解,今天我在这里给大家再简单的讲讲。感兴趣的话就一起来看看正文部分吧,相信看完MySQL8.0中invisible index特点及作用你一定会有所收获的。


invisible index特点

默认创建的索引都是visible,如果需要invisible索引创建的时候需要指定invisible参数。

默认无法使用invisible index索引,需要开启参数optimizer_switch='use_invisible_indexes=on'才能使用;

使用force index也无法使用,会报错;

索引的visible和invisible属性可以相互转换,即使表很大,这个过程也是很快的;

primary key不能改成invisible;


invisible index作用

在生产环境中,往往一个表是非常大的,我们想要测试一条SQL不使用某个索引的执行效率,如果直接删除这个索引,可能代价比较大,但是把索引改成不可见模式,再去测试,时间是很快的。

mysql> create index idx_emp_no on t_group(emp_no) invisible;
Query OK, 0 rows affected (0.22 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show index from t_group;
+---------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| Table   | Non_unique | Key_name   | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | Expression |
+---------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| t_group |          1 | idx_emp_no |            1 | emp_no      | A         |          10 |     NULL |   NULL |      | BTREE      |         |               | NO      | NULL       |
+---------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
1 row in set (0.08 sec)

mysql> desc select * from t_group where emp_no=31112;
+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-------------+
| id | select_type | table   | partitions | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra       |
+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-------------+
|  1 | SIMPLE      | t_group | NULL       | ALL  | NULL          | NULL | NULL    | NULL |   10 |    10.00 | Using where |
+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-------------+
1 row in set, 1 warning (0.00 sec)

mysql> desc select * from t_group force index(idx_emp_no) where emp_no=31112;
ERROR 1176 (42000): Key 'idx_emp_no' doesn't exist in table 't_group'

mysql> desc select /*+ set_var(optimizer_switch='use_invisible_indexes=on') */ * from t_group where emp_no=31112;
+----+-------------+---------+------------+------+---------------+------------+---------+-------+------+----------+-------+
| id | select_type | table   | partitions | type | possible_keys | key        | key_len | ref   | rows | filtered | Extra |
+----+-------------+---------+------------+------+---------------+------------+---------+-------+------+----------+-------+
|  1 | SIMPLE      | t_group | NULL       | ref  | idx_emp_no    | idx_emp_no | 4       | const |    1 |   100.00 | NULL  |
+----+-------------+---------+------------+------+---------------+------------+---------+-------+------+----------+-------+
1 row in set, 1 warning (0.00 sec)

看完MySQL8.0中invisible index特点及作用这篇文章,大家觉得怎么样?如果想要了解更多相关,可以继续关注我们的行业资讯板块。

相关内容

热门资讯

终于明白“天天微友炸/金/花辅... 有 亲,根据资深记者爆料天天微友炸/金/花是可以开挂的,确实有挂(咨询软...
【第一资讯】“喜扣游戏真的有挂... 家人们!今天小编来为大家解答喜扣游戏透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里买很...
【今日要闻】“美猴王拼三张开挂... 网上科普关于“美猴王拼三张有没有挂”话题很是火热,小编也是针对美猴王拼三张作*弊开挂的方法以及开挂对...
终于明白“福建十三水真的有挂吗... 有 亲,根据资深记者爆料福建十三水是可以开挂的,确实有挂(咨询软件无需打...
最新引进“纸上战争到底是不是挂... 有 亲,根据资深记者爆料纸上战争是可以开挂的,确实有挂(咨询软件无需打开...
今日重磅消息“广西老友玩开挂神... 有 亲,根据资深记者爆料广西老友玩是可以开挂的,确实有挂(咨询软件无需打...
玩家攻略科普“超稳牛牛到底有挂... 家人们!今天小编来为大家解答超稳牛牛透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里买很...
今日重大发现“新九天牛牛开挂器... 今日重大发现“新九天牛牛开挂器?”(详细开挂教程)您好,新九天牛牛这个游戏其实有挂的,确实是有挂的,...
终于了解“趣友到底有挂吗?”(... 您好:趣友这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款游戏中打...
我来教教您“大金牙麻将有挂吗?... 网上科普关于“大金牙麻将有没有挂”话题很是火热,小编也是针对大金牙麻将作*弊开挂的方法以及开挂对应的...