mysql查看索引的方式
mysql查看索引
1、查看數據庫所有索引
SELECT * FROM mysql.`innodb_index_stats` a WHERE a.`database_name` = '數據庫名';
2、查看某一表索引
SELECT * FROM mysql.`innodb_index_stats` a WHERE a.`database_name` = '數據庫名' and a.table_name like '%表名%';
或者
通過命令窗口show index from tb1001_container;
mysql查看索引語句:SHOW INDEX講解
概述
SHOW INDEX語句是MySQL中用于查看表索引信息的語句。
它提供了有關表中索引的詳細信息,包括索引名稱、索引類型、關聯(lián)的列等。
以下是SHOW INDEX的詳細說明:
語法
SHOW INDEX FROM table_name [FROM db_name] [WHERE condition];
參數說明
table_name
:需要查詢索引的表名。db_name
:(可選)數據庫名。如果你已經在某個數據庫上下文中,可以省略此參數。condition
:(可選)可以添加WHERE子句來篩選索引信息,比如根據索引名稱、索引類型等進行篩選。
SHOW INDEX語句返回以下信息
table
:表名。non_unique
:是否允許重復值。如果值為1,表示允許重復值;如果值為0,表示不允許重復值(唯一索引)。key_name
:索引名稱。主鍵索引名通常為PRIMARY。seq_in_index
:索引中的列的序號。對于組合索引,這表示列在索引中的位置。column_name
:列名,索引涉及的列。collation
:排序規(guī)則。A表示升序,NULL表示不可排序。cardinality
:索引的基數。這是一個估算值,表示索引中唯一值的數量。這個值對于查詢優(yōu)化器選擇索引非常重要。sub_part
:索引的前綴長度。對于部分索引,這表示索引的前綴長度。packed
:索引是否被壓縮。如果索引未被壓縮,該列的值為NULL。null
:列是否允許包含NULL值。index_type
:索引類型。常見的類型有BTREE、HASH、FULLTEXT等。comment
:索引的備注。
示例
下面是一個名為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;
在這個示例中,我們創(chuàng)建了一個名為examples的表,包含以下類型的索引:
- 主鍵索引(PRIMARY KEY):id列是主鍵索引。主鍵索引要求唯一且不允許NULL值。
- 唯一索引(UNIQUE KEY):name列是唯一索引。唯一索引要求唯一,但允許NULL值。
- 普通索引(KEY):category列是普通索引。普通索引允許重復值和NULL值。
- 聯(lián)合索引(KEY):category和price列組成了一個聯(lián)合索引。這允許根據這兩個列的組合進行更快的查詢。
- 前綴索引(KEY):name列的前10個字符被用作前綴索引。前綴索引允許在索引較長的字符串列時節(jié)省存儲空間和提高查詢速度,但可能會影響查詢準確性。
現(xiàn)在,使用SHOW INDEX語句查詢examples表的索引信息:
SHOW INDEX FROM examples;
輸出結果(以表格形式表示):
在SHOW INDEX的輸出中,你可以看到examples表的各種類型索引:
- 主鍵索引(PRIMARY KEY):在key_name列中,PRIMARY關鍵字表示該行對應的是主鍵索引。non_unique列的值為0,說明主鍵索引的值必須是唯一的。在此例中,主鍵索引是id列。
- 唯一索引(UNIQUE KEY):在key_name列中,自定義的索引名稱(例如idx_name)表示這是一個唯一索引。non_unique列的值為0,說明唯一索引的值必須是唯一的,但允許NULL值。在此例中,唯一索引是name列。
- 普通索引(KEY):在key_name列中,自定義的索引名稱(例如idx_category)表示這是一個普通索引。non_unique列的值為1,說明普通索引允許重復值和NULL值。在此例中,普通索引是category列。
- 前綴索引(KEY):前綴索引的識別方法與普通索引相同,但在sub_part列中有一個值,表示使用列值的前多少個字符作為前綴索引。在此例中,idx_name_prefix是一個前綴索引,它將name列的前10個字符作為索引。
- 聯(lián)合索引(KEY):聯(lián)合索引可以通過key_name列中的相同索引名稱以及不同的seq_in_index值來識別。在seq_in_index列中,數字表示列在聯(lián)合索引中的順序。在此例中,idx_category_price是一個聯(lián)合索引,包括category和price兩個列。
在這兩行中,key_name列的值都是idx_category_price,表明它們屬于同一個索引。
seq_in_index列的值分別為1和2,表示category和price這兩個列在聯(lián)合索引中的順序。
注意,SHOW INDEX語句及返回的結果列可能會因MySQL版本的不同而有所差異。
本解釋基于MySQL 8.0版本。在其他版本中,返回的結果列可能有所不同。要獲取與您的MySQL版本對應的詳細信息,請查閱官方文檔。
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Mysql刪除幾億條數據表中的部分數據的方法實現(xiàn)
在MySQL中刪除一個大表中的數據時,需要特別注意操作的性能和對系統(tǒng)的影響,本文主要介紹了Mysql刪除幾億條數據表中的部分數據的方法實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2025-03-03解決Mysql 8.0.17 winx64版本安裝過程中遇到的問題
這篇文章主要介紹了Mysql 8.0.17 winx64版本安裝過程中遇到的問題 ,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08mysql 報錯This function has none of DETERMINISTIC解決方案
這篇文章主要介紹了mysql 報錯This function has none of DETERMINISTIC解決方案的相關資料,需要的朋友可以參考下2016-11-11