欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 詳解MySQL 8.0 之不可見索引

詳解MySQL 8.0 之不可見索引

熱門標(biāo)簽:芒果電話機(jī)器人自動化 廣東人工電話機(jī)器人 申請外呼電話線路 百度地圖圖標(biāo)標(biāo)注中心 湖南人工外呼系統(tǒng)多少錢 南通自動外呼系統(tǒng)軟件 日照旅游地圖標(biāo)注 石家莊電商外呼系統(tǒng) 信陽穩(wěn)定外呼系統(tǒng)運(yùn)營商

MySQL 8.0 從第一版release 到現(xiàn)在已經(jīng)走過了4個(gè)年頭了,8.0版本在功能和代碼上做了相當(dāng)大的改進(jìn)和重構(gòu)。和DBA圈子里的朋友交流,大部分還是5.6 ,5.7的版本,少量的走的比較靠前采用了MySQL 8.0。為了緊追數(shù)據(jù)庫發(fā)展的步伐,能夠盡早享受技術(shù)紅利,我們準(zhǔn)備將MySQL 8.0引入到有贊的數(shù)據(jù)庫體系。

落地之前 我們會對MySQL 8.0的新特性和功能,配置參數(shù),升級方式,兼容性等等做一系列的學(xué)習(xí)和測試。以后陸陸續(xù)續(xù)會發(fā)布文章出來。本文算是MySQL 8.0新特性學(xué)習(xí)的第一篇吧,聊聊 不可見索引。

不可見索引

不可見索引中的不可見是針對優(yōu)化器而言的,優(yōu)化器在做執(zhí)行計(jì)劃分析的時(shí)候(默認(rèn)情況下)是會忽略設(shè)置了不可見屬性的索引。

為什么是默認(rèn)情況下,如果 optimizer_switch設(shè)置use_invisible_indexes=ON 是可以繼續(xù)使用不可見索引。

話不多說,我們先測試幾個(gè)例子

如何設(shè)置不可見索引

我們可以通過帶上關(guān)鍵字VISIBLE|INVISIBLE的create table,create index,alter table 設(shè)置索引的可見性。

mysql> create table t1 (i int,
   > j int,
   > k int,
   > index i_idx (i) invisible) engine=innodb;
Query OK, 0 rows affected (0.41 sec)

mysql> create index j_idx on t1 (j) invisible;
Query OK, 0 rows affected (0.19 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> alter table t1 add index k_idx (k) invisible;
Query OK, 0 rows affected (0.10 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> select index_name,is_visible from information_schema.statistics where table_schema='test' and table_name='t1';
+------------+------------+
| INDEX_NAME | IS_VISIBLE |
+------------+------------+
| i_idx   | NO     |
| j_idx   | NO     |
| k_idx   | NO     |
+------------+------------+
3 rows in set (0.01 sec)

mysql> alter table t1 alter index i_idx visible;
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> select index_name,is_visible from information_schema.statistics where table_schema='test' and table_name='t1';
+------------+------------+
| INDEX_NAME | IS_VISIBLE |
+------------+------------+
| i_idx   | YES    |
| j_idx   | NO     |
| k_idx   | NO     |
+------------+------------+
3 rows in set (0.00 sec)

不可見索引的作用

面對歷史遺留的一大堆索引,經(jīng)過數(shù)輪新老交替開發(fā)和DBA估計(jì)都不敢直接將索引刪除,尤其是遇到比如大于100G的大表,直接刪除索引會提升數(shù)據(jù)庫的穩(wěn)定性風(fēng)險(xiǎn)。

有了不可見索引的特性,DBA可以一邊設(shè)置索引為不可見,一邊觀察數(shù)據(jù)庫的慢查詢記錄和thread running 狀態(tài)。如果數(shù)據(jù)庫長時(shí)間沒有相關(guān)慢查詢 ,thread_running比較穩(wěn)定,就可以下線該索引。反之,則可以迅速將索引設(shè)置為可見,恢復(fù)業(yè)務(wù)訪問。

Invisible Indexes 是 server 層的特性,和引擎無關(guān),因此所有引擎(InnoDB, TokuDB, MyISAM, etc.)都可以使用。

設(shè)置完不可見索引,執(zhí)行計(jì)劃無法使用索引

mysql> show create table t2 \G
*************************** 1. row ***************************
    Table: t2
Create Table: CREATE TABLE `t2` (
 `i` int NOT NULL AUTO_INCREMENT,
 `j` int NOT NULL,
 PRIMARY KEY (`i`),
 UNIQUE KEY `j_idx` (`j`) /*!80000 INVISIBLE */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.01 sec)
mysql> insert into t2(j) values(1),(2),(3),(4),(5),(6),(7);
Query OK, 7 rows affected (0.04 sec)
Records: 7 Duplicates: 0 Warnings: 0


mysql> explain select * from t2 where j=3\G
*************************** 1. row ***************************
      id: 1
 select_type: SIMPLE
    table: t2
  partitions: NULL
     type: ALL
possible_keys: NULL
     key: NULL
   key_len: NULL
     ref: NULL
     rows: 7
   filtered: 14.29
    Extra: Using where
1 row in set, 1 warning (0.01 sec)

mysql> alter table t2 alter index j_idx visible;
Query OK, 0 rows affected (0.08 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> explain select * from t2 where j=3\G
*************************** 1. row ***************************
      id: 1
 select_type: SIMPLE
    table: t2
  partitions: NULL
     type: const
possible_keys: j_idx
     key: j_idx
   key_len: 4
     ref: const
     rows: 1
   filtered: 100.00
    Extra: Using index
1 row in set, 1 warning (0.01 sec)

使用不可見索引的注意事項(xiàng)

The feature applies to indexes other than primary keys (either explicit or implicit).

不可見索引是針對非主鍵索引的。主鍵不能設(shè)置為不可見,這里的 主鍵 包括顯式的主鍵或者隱式主鍵(不存在主鍵時(shí),被提升為主鍵的唯一索引) ,我們可以用下面的例子展示該規(guī)則。

mysql> create table t2 (
   >i int not null,
   >j int not null ,
   >unique j_idx (j)
   >) ENGINE = InnoDB;
Query OK, 0 rows affected (0.16 sec)

mysql> select index_name,is_visible from information_schema.statistics where table_schema='test' and table_name='t2';
+------------+------------+
| INDEX_NAME | IS_VISIBLE |
+------------+------------+
| j_idx   | YES    |
+------------+------------+
1 row in set (0.00 sec)

### 沒有主鍵的情況下,唯一鍵被當(dāng)做隱式主鍵,不能設(shè)置 不可見。
mysql> alter table t2 alter index j_idx invisible;
ERROR 3522 (HY000): A primary key index cannot be invisible
mysql>
mysql> alter table t2 add primary key (i);
Query OK, 0 rows affected (0.44 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> select index_name,is_visible from information_schema.statistics where table_schema='test' and table_name='t2';
+------------+------------+
| INDEX_NAME | IS_VISIBLE |
+------------+------------+
| j_idx   | YES    |
| PRIMARY  | YES    |
+------------+------------+
2 rows in set (0.01 sec)

mysql> alter table t2 alter index j_idx invisible;
Query OK, 0 rows affected (0.04 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> select index_name,is_visible from information_schema.statistics where table_schema='test' and table_name='t2';
+------------+------------+
| INDEX_NAME | IS_VISIBLE |
+------------+------------+
| j_idx   | NO     |
| PRIMARY  | YES    |
+------------+------------+
2 rows in set (0.01 sec)

force /ignore index(index_name) 不能訪問不可見索引,否則報(bào)錯(cuò)。

mysql> select * from t2 force index(j_idx) where j=3;
ERROR 1176 (42000): Key 'j_idx' doesn't exist in table 't2'

設(shè)置索引為不可見需要獲取MDL鎖,遇到長事務(wù)會引發(fā)數(shù)據(jù)庫抖動

唯一索引被設(shè)置為不可見,不代表索引本身唯一性的約束失效

mysql> select * from t2;
+---+----+
| i | j |
+---+----+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
| 5 | 5 |
| 6 | 6 |
| 7 | 7 |
| 8 | 11 |
+---+----+
8 rows in set (0.00 sec)
mysql> insert into t2(j) values(11);
ERROR 1062 (23000): Duplicate entry '11' for key 't2.j_idx'

小結(jié)

其實(shí)沒啥說的,祝大家用的愉快。

-The End-

以上就是詳解MySQL 8.0 之不可見索引的詳細(xì)內(nèi)容,更多關(guān)于MySQL 8.0 不可見索引的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • MySQL全文索引、聯(lián)合索引、like查詢、json查詢速度哪個(gè)快
  • MySQL全文索引實(shí)現(xiàn)簡單版搜索引擎實(shí)例代碼
  • MySQL創(chuàng)建全文索引分享
  • MySQL全文索引應(yīng)用簡明教程
  • 基于mysql全文索引的深入理解
  • MySQL索引失效的幾種情況詳析
  • Mysql普通索引與唯一索引的選擇詳析
  • 淺析MysQL B-Tree 索引
  • MySQL8.0中的降序索引
  • MySQL 8.0 之索引跳躍掃描(Index Skip Scan)
  • Mysql索引常見問題匯總
  • MySql索引提高查詢速度常用方法代碼示例
  • MySQL 全文索引的原理與缺陷

標(biāo)簽:公主嶺 合肥 牡丹江 阿里 沈陽 天津 呼和浩特 惠州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解MySQL 8.0 之不可見索引》,本文關(guān)鍵詞  詳解,MySQL,8.0,之不,可見,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解MySQL 8.0 之不可見索引》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解MySQL 8.0 之不可見索引的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    污污免费在线观看| 欧美日韩国产首页在线观看| 精品国产区一区| 天天影视色香欲综合网老头| 无码人妻一区二区三区精品视频| 欧美综合一区二区| 亚洲欧美日韩国产中文在线| www.日韩大片| 一本到高清视频免费精品| 自拍偷拍国产精品| 99在线精品观看| 在线观看中文字幕不卡| 夜夜爽夜夜爽精品视频| 亚洲少妇一区二区三区| 欧美一区二区三区在线电影| 日本麻豆一区二区三区视频| 扒开jk护士狂揉免费| 26uuu亚洲综合色欧美| 激情深爱一区二区| www.xx日本| 专区另类欧美日韩| 一个人看的视频www| 欧美日韩精品欧美日韩精品 | 欧美日韩一区二区在线视频| 日韩在线观看免| 国产女人aaa级久久久级| 国产麻豆成人精品| 国产午夜手机精彩视频| 亚洲人成亚洲人成在线观看图片| 日本成人在线免费观看| 欧美久久免费观看| 青青草原综合久久大伊人精品优势 | 国产精品久久久久久久午夜片| 顶级嫩模精品视频在线看| 色综合久久中文综合久久牛| 夜夜精品视频一区二区 | 精品久久一二三区| 国产精品一卡二| 一本到一区二区三区| 亚洲成人av电影在线| 国产熟妇久久777777| 国产欧美日产一区| a级精品国产片在线观看| 欧美日韩亚洲高清一区二区| 麻豆精品久久精品色综合| 污污视频网站在线免费观看| 亚洲视频1区2区| 亚洲熟女乱综合一区二区三区| 久久综合久久久久88| 成人激情av网| 91精品国产欧美一区二区18| 黄网站免费久久| 国产少妇在线观看| 婷婷综合久久一区二区三区| 国产在线免费av| 亚洲另类中文字| 国产精品扒开腿做爽爽| 中文字幕日韩av资源站| 91视频啊啊啊| 中文字幕一区二区三| 无码一区二区精品| 国产精品麻豆视频| 人妻体内射精一区二区三区| 欧美激情在线观看视频免费| 亚洲最大视频网| 亚洲国产成人午夜在线一区| 亚洲最大视频网| 国产精品视频观看| 久久久久国产精品区片区无码| 国产精品素人一区二区| 在线黄色免费网站| 国产精品久久久久久久久果冻传媒| 日本不卡视频一区| 中文字幕在线一区免费| 毛茸茸free性熟hd| 亚洲欧洲另类国产综合| 白白色免费视频| 一区二区不卡在线播放| 亚洲精品卡一卡二| 麻豆国产精品官网| 欧美性极品少妇| 岛国精品在线观看| 精品国产乱码久久久久久久久 | 日韩免费成人av| 亚洲va韩国va欧美va| 国产精品丝袜一区二区| 久久国产精品无码网站| 欧美色偷偷大香| 国产不卡在线视频| 欧美成人精品福利| 国产ts在线观看| 中文字幕亚洲成人| 99久久99久久精品免费| 日本欧美在线观看| 欧美日韩国产天堂| 91美女在线观看| 国产精品乱码人人做人人爱| 四虎国产精品成人免费入口| 婷婷开心久久网| 欧美午夜精品免费| 成人高清免费观看| 国产日韩av一区| 久操视频在线观看免费| 日本亚洲电影天堂| 在线成人免费观看| 先锋资源在线视频| 亚洲色图第一区| h色网站在线观看| 国产丶欧美丶日本不卡视频| 久久伊99综合婷婷久久伊| 黑丝av在线播放| 亚洲va欧美va国产va天堂影院| 欧美特级限制片免费在线观看| 成人精品视频.| 中文av一区二区| 自拍偷拍第9页| 国产一区二区中文字幕| 欧美精品一区二区蜜臀亚洲| theav精尽人亡av| 日韩成人精品在线观看| 91精品国产一区二区三区香蕉| www.黄色网| 亚洲一区二区视频| 欧美日韩和欧美的一区二区| 人妻 丝袜美腿 中文字幕| 亚洲国产日韩av| 91麻豆精品国产91久久久资源速度| 在线观看一区二区三区视频| 亚洲美女视频在线观看| 欧美在线影院一区二区| 日本黄色三级网站| 午夜影院久久久| 91精品在线免费| 欧美大片免费播放器| 日韩av网站免费在线| 日韩欧美国产午夜精品| 亚洲а∨天堂久久精品2021| 国产激情精品久久久第一区二区 | 欧美性生活一区| wwwxx日本| 日本中文一区二区三区| 精品欧美一区二区三区精品久久| 国产av自拍一区| 国产在线看一区| 国产精品国产精品国产专区不片| 日本天堂中文字幕| 国产成人精品综合久久久久99| 丝袜美腿一区二区三区| 欧美videos中文字幕| 欧美激情视频二区| 丰满亚洲少妇av| 一区二区三区免费| 91精品欧美久久久久久动漫 | 天天操天天色综合| 欧美videos中文字幕| 男女全黄做爰文章| 91小视频在线| 日本中文字幕一区| 国产女同性恋一区二区| 在线观看视频91| 黄色性生活一级片| 国产精品99久| 夜色激情一区二区| 日韩免费观看2025年上映的电影| 亚洲色图 激情小说| 99精品视频在线观看| 日韩精品色哟哟| 欧美激情在线看| 欧美日韩卡一卡二| 国产一级久久久久毛片精品| 成人av在线一区二区三区| 亚洲不卡在线观看| 国产日韩高清在线| 欧美日韩激情一区二区三区| 手机看片日韩av| 91丨porny丨九色| 久久99热狠狠色一区二区| 亚洲少妇30p| 精品久久久久久亚洲综合网| 欧美国产日韩在线观看成人| 一边摸一边做爽的视频17国产| 国产一区二区三区高清播放| 亚洲黄色在线视频| 久久久久亚洲蜜桃| 欧美色图在线观看| 国产美女高潮视频| 妖精视频一区二区| 成人激情开心网| 久久国产福利国产秒拍| 一区二区三区丝袜| 久久精品视频在线看| 欧美日韩视频一区二区| 国精产品视频一二二区| 污网站免费观看| 成人黄页在线观看| 精品伊人久久久久7777人| 一个色综合av| 国产精品人成在线观看免费| 欧美浪妇xxxx高跟鞋交| 午夜精品福利在线视频|