官方文檔: https://dev.MySQL.com/doc/refman/8.0/en/invisible-indexes.html
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比魚峰網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式魚峰網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋魚峰地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。
MySQL支持不可見索引,即優(yōu)化器不會使用該索引。 不可見索引特性不可以用于主鍵。
默認索引是可見的??梢栽赾reate table、create index、alter table操作中使用關(guān)鍵字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;
修改已經(jīng)存在的索引的可見性:
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)
不可見索引可以用來測試移除索引后對查詢性能的影響。 畢竟對于大表,刪除和重建索引是非常昂貴的操作。 系統(tǒng)變量optimizer_switch中的use_invisible_indexes標志控制了優(yōu)化器是否使用不可見索引來構(gòu)建執(zhí)行計劃。 如果use_invisible_indexes=off(默認設(shè)置),優(yōu)化器會忽略不可見索引;如果設(shè)置為on,索引仍然不可見,但是優(yōu)化器在生成執(zhí)行計劃的時候會考慮不可見索引。
化器在生成執(zhí)行計劃的時候會考慮不可見索引。
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 | 返回行數(shù):[1],耗時:14 ms.
舉例:
alter table t1 alter index i_idx invisible;
索引設(shè)置為不可見,優(yōu)化器便不考慮此索引,也就是說如果沒有該特性,你就得刪除該索引和重建該索引來測
新聞名稱:MySQL8.0新特性-不可見索引
當前鏈接:http://jinyejixie.com/article16/psgcdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、軟件開發(fā)、小程序開發(fā)、網(wǎng)站改版、標簽優(yōu)化、響應式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)