国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL 8.0新特性-不可見索引

2024-07-24 12:32:09
字體:
來源:轉載
供稿:網友
        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;
 
索引設置為不可見,優化器便不考慮此索引,也就是說如果沒有該特性,你就得刪除該索引和重建該索引來測.

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 米泉市| 纳雍县| 武宁县| 平阳县| 新龙县| 蒙阴县| 伊宁市| 富阳市| 双峰县| 崇州市| 河源市| 南靖县| 景德镇市| 焦作市| 新密市| 鄂托克前旗| 玉树县| 靖州| 富阳市| 琼海市| 车险| 衡水市| 穆棱市| 托克逊县| 岳普湖县| 农安县| 丰县| 徐汇区| 墨玉县| 江油市| 信阳市| 黄骅市| 太原市| 闽清县| 建湖县| 永城市| 潜山县| 开平市| 沅江市| 克拉玛依市| 正阳县|