mysql查看索引的方式
mysql查看索引
1、查看數(shù)據(jù)庫(kù)所有索引
SELECT * FROM mysql.`innodb_index_stats` a WHERE a.`database_name` = '數(shù)據(jù)庫(kù)名';
2、查看某一表索引
SELECT * FROM mysql.`innodb_index_stats` a WHERE a.`database_name` = '數(shù)據(jù)庫(kù)名' and a.table_name like '%表名%';
或者
通過(guò)命令窗口show index from tb1001_container;
mysql查看索引語(yǔ)句:SHOW INDEX講解
概述
SHOW INDEX語(yǔ)句是MySQL中用于查看表索引信息的語(yǔ)句。
它提供了有關(guān)表中索引的詳細(xì)信息,包括索引名稱、索引類型、關(guān)聯(lián)的列等。
以下是SHOW INDEX的詳細(xì)說(shuō)明:
語(yǔ)法
SHOW INDEX FROM table_name [FROM db_name] [WHERE condition];
參數(shù)說(shuō)明
table_name
:需要查詢索引的表名。db_name
:(可選)數(shù)據(jù)庫(kù)名。如果你已經(jīng)在某個(gè)數(shù)據(jù)庫(kù)上下文中,可以省略此參數(shù)。condition
:(可選)可以添加WHERE子句來(lái)篩選索引信息,比如根據(jù)索引名稱、索引類型等進(jìn)行篩選。
SHOW INDEX語(yǔ)句返回以下信息
table
:表名。non_unique
:是否允許重復(fù)值。如果值為1,表示允許重復(fù)值;如果值為0,表示不允許重復(fù)值(唯一索引)。key_name
:索引名稱。主鍵索引名通常為PRIMARY。seq_in_index
:索引中的列的序號(hào)。對(duì)于組合索引,這表示列在索引中的位置。column_name
:列名,索引涉及的列。collation
:排序規(guī)則。A表示升序,NULL表示不可排序。cardinality
:索引的基數(shù)。這是一個(gè)估算值,表示索引中唯一值的數(shù)量。這個(gè)值對(duì)于查詢優(yōu)化器選擇索引非常重要。sub_part
:索引的前綴長(zhǎng)度。對(duì)于部分索引,這表示索引的前綴長(zhǎng)度。packed
:索引是否被壓縮。如果索引未被壓縮,該列的值為NULL。null
:列是否允許包含NULL值。index_type
:索引類型。常見(jiàn)的類型有BTREE、HASH、FULLTEXT等。comment
:索引的備注。
示例
下面是一個(gè)名為examples的表,其中包含各種類型的索引:主鍵索引、唯一索引、普通索引、前綴索引和聯(lián)合索引。
CREATE TABLE examples ( id INT AUTO_INCREMENT, name VARCHAR(255), description TEXT, category VARCHAR(255), price DECIMAL(10, 2), PRIMARY KEY (id), UNIQUE KEY idx_name (name), KEY idx_category (category), KEY idx_category_price (category, price), KEY idx_name_prefix (name(10)) ) ENGINE=InnoDB;
在這個(gè)示例中,我們創(chuàng)建了一個(gè)名為examples的表,包含以下類型的索引:
- 主鍵索引(PRIMARY KEY):id列是主鍵索引。主鍵索引要求唯一且不允許NULL值。
- 唯一索引(UNIQUE KEY):name列是唯一索引。唯一索引要求唯一,但允許NULL值。
- 普通索引(KEY):category列是普通索引。普通索引允許重復(fù)值和NULL值。
- 聯(lián)合索引(KEY):category和price列組成了一個(gè)聯(lián)合索引。這允許根據(jù)這兩個(gè)列的組合進(jìn)行更快的查詢。
- 前綴索引(KEY):name列的前10個(gè)字符被用作前綴索引。前綴索引允許在索引較長(zhǎng)的字符串列時(shí)節(jié)省存儲(chǔ)空間和提高查詢速度,但可能會(huì)影響查詢準(zhǔn)確性。
現(xiàn)在,使用SHOW INDEX語(yǔ)句查詢examples表的索引信息:
SHOW INDEX FROM examples;
輸出結(jié)果(以表格形式表示):
在SHOW INDEX的輸出中,你可以看到examples表的各種類型索引:
- 主鍵索引(PRIMARY KEY):在key_name列中,PRIMARY關(guān)鍵字表示該行對(duì)應(yīng)的是主鍵索引。non_unique列的值為0,說(shuō)明主鍵索引的值必須是唯一的。在此例中,主鍵索引是id列。
- 唯一索引(UNIQUE KEY):在key_name列中,自定義的索引名稱(例如idx_name)表示這是一個(gè)唯一索引。non_unique列的值為0,說(shuō)明唯一索引的值必須是唯一的,但允許NULL值。在此例中,唯一索引是name列。
- 普通索引(KEY):在key_name列中,自定義的索引名稱(例如idx_category)表示這是一個(gè)普通索引。non_unique列的值為1,說(shuō)明普通索引允許重復(fù)值和NULL值。在此例中,普通索引是category列。
- 前綴索引(KEY):前綴索引的識(shí)別方法與普通索引相同,但在sub_part列中有一個(gè)值,表示使用列值的前多少個(gè)字符作為前綴索引。在此例中,idx_name_prefix是一個(gè)前綴索引,它將name列的前10個(gè)字符作為索引。
- 聯(lián)合索引(KEY):聯(lián)合索引可以通過(guò)key_name列中的相同索引名稱以及不同的seq_in_index值來(lái)識(shí)別。在seq_in_index列中,數(shù)字表示列在聯(lián)合索引中的順序。在此例中,idx_category_price是一個(gè)聯(lián)合索引,包括category和price兩個(gè)列。
在這兩行中,key_name列的值都是idx_category_price,表明它們屬于同一個(gè)索引。
seq_in_index列的值分別為1和2,表示category和price這兩個(gè)列在聯(lián)合索引中的順序。
注意,SHOW INDEX語(yǔ)句及返回的結(jié)果列可能會(huì)因MySQL版本的不同而有所差異。
本解釋基于MySQL 8.0版本。在其他版本中,返回的結(jié)果列可能有所不同。要獲取與您的MySQL版本對(duì)應(yīng)的詳細(xì)信息,請(qǐng)查閱官方文檔。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mysql刪除幾億條數(shù)據(jù)表中的部分?jǐn)?shù)據(jù)的方法實(shí)現(xiàn)
在MySQL中刪除一個(gè)大表中的數(shù)據(jù)時(shí),需要特別注意操作的性能和對(duì)系統(tǒng)的影響,本文主要介紹了Mysql刪除幾億條數(shù)據(jù)表中的部分?jǐn)?shù)據(jù)的方法實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2025-03-03詳解MySQL 5.7 MGR單主確定主節(jié)點(diǎn)方法
這篇文章主要介紹了詳解MySQL 5.7 MGR單主確定主節(jié)點(diǎn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Mysql主從GTID與binlog的區(qū)別及說(shuō)明
MySQL GTID(全局事務(wù)標(biāo)識(shí)符)與binlog(二進(jìn)制日志)是搭建主從復(fù)制的兩種機(jī)制,GTID為每個(gè)事務(wù)分配唯一標(biāo)識(shí),確保復(fù)制無(wú)數(shù)據(jù)沖突或丟失,便于復(fù)制配置和管理;binlog記錄所有數(shù)據(jù)庫(kù)更改,用于數(shù)據(jù)恢復(fù)和復(fù)制,GTID基于事務(wù)標(biāo)識(shí)2024-10-10Mysql中where與having的區(qū)別實(shí)例詳解
當(dāng)SQL語(yǔ)句中使用聚合函數(shù),然后又需要對(duì)聚合函數(shù)的記錄集進(jìn)行篩選過(guò)濾時(shí),這個(gè)時(shí)候就需要用到Having子句,下面這篇文章主要給大家介紹了關(guān)于Mysql中where與having區(qū)別的相關(guān)資料,需要的朋友可以參考下2023-01-01MySQL數(shù)據(jù)庫(kù)基礎(chǔ)學(xué)習(xí)之JSON函數(shù)各類操作詳解
很多日常業(yè)務(wù)場(chǎng)景都會(huì)用到j(luò)son文件作為數(shù)據(jù)存儲(chǔ)起來(lái),而mysql5.7以上就提供了存儲(chǔ)json的支撐。這篇文章就為大家整理了MySQL中JSON函數(shù)的各類操作,感興趣的可以了解一下2023-02-02解決Mysql 8.0.17 winx64版本安裝過(guò)程中遇到的問(wèn)題
這篇文章主要介紹了Mysql 8.0.17 winx64版本安裝過(guò)程中遇到的問(wèn)題 ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08教你解決往mysql數(shù)據(jù)庫(kù)中存入漢字報(bào)錯(cuò)的方法
這篇文章主要介紹了Mysql基礎(chǔ)之教你解決往數(shù)據(jù)庫(kù)中存入漢字報(bào)錯(cuò)的方法,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)mysql的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-05-05mysql 報(bào)錯(cuò)This function has none of DETERMINISTIC解決方案
這篇文章主要介紹了mysql 報(bào)錯(cuò)This function has none of DETERMINISTIC解決方案的相關(guān)資料,需要的朋友可以參考下2016-11-11