mysql查看索引的方式
mysql查看索引
1、查看數(shù)據(jù)庫所有索引
SELECT * FROM mysql.`innodb_index_stats` a WHERE a.`database_name` = '數(shù)據(jù)庫名';
2、查看某一表索引
SELECT * FROM mysql.`innodb_index_stats` a WHERE a.`database_name` = '數(shù)據(jù)庫名' and a.table_name like '%表名%';
或者
通過命令窗口show index from tb1001_container;

mysql查看索引語句:SHOW INDEX講解
概述
SHOW INDEX語句是MySQL中用于查看表索引信息的語句。
它提供了有關(guān)表中索引的詳細(xì)信息,包括索引名稱、索引類型、關(guān)聯(lián)的列等。
以下是SHOW INDEX的詳細(xì)說明:
語法
SHOW INDEX FROM table_name [FROM db_name] [WHERE condition];
參數(shù)說明
table_name:需要查詢索引的表名。db_name:(可選)數(shù)據(jù)庫名。如果你已經(jīng)在某個(gè)數(shù)據(jù)庫上下文中,可以省略此參數(shù)。condition:(可選)可以添加WHERE子句來篩選索引信息,比如根據(jù)索引名稱、索引類型等進(jìn)行篩選。
SHOW INDEX語句返回以下信息
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:索引類型。常見的類型有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語句查詢examples表的索引信息:
SHOW INDEX FROM examples;
輸出結(jié)果(以表格形式表示):

在SHOW INDEX的輸出中,你可以看到examples表的各種類型索引:
- 主鍵索引(PRIMARY KEY):在key_name列中,PRIMARY關(guān)鍵字表示該行對(duì)應(yīng)的是主鍵索引。non_unique列的值為0,說明主鍵索引的值必須是唯一的。在此例中,主鍵索引是id列。
- 唯一索引(UNIQUE KEY):在key_name列中,自定義的索引名稱(例如idx_name)表示這是一個(gè)唯一索引。non_unique列的值為0,說明唯一索引的值必須是唯一的,但允許NULL值。在此例中,唯一索引是name列。
- 普通索引(KEY):在key_name列中,自定義的索引名稱(例如idx_category)表示這是一個(gè)普通索引。non_unique列的值為1,說明普通索引允許重復(fù)值和NULL值。在此例中,普通索引是category列。
- 前綴索引(KEY):前綴索引的識(shí)別方法與普通索引相同,但在sub_part列中有一個(gè)值,表示使用列值的前多少個(gè)字符作為前綴索引。在此例中,idx_name_prefix是一個(gè)前綴索引,它將name列的前10個(gè)字符作為索引。
- 聯(lián)合索引(KEY):聯(lián)合索引可以通過key_name列中的相同索引名稱以及不同的seq_in_index值來識(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語句及返回的結(jié)果列可能會(huì)因MySQL版本的不同而有所差異。
本解釋基于MySQL 8.0版本。在其他版本中,返回的結(jié)果列可能有所不同。要獲取與您的MySQL版本對(duì)應(yīng)的詳細(xì)信息,請(qǐng)查閱官方文檔。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
debian6配置mysql允許遠(yuǎn)程連接的方法(圖)
這篇文章主要介紹了debian6配置mysql允許遠(yuǎn)程連接的方法,大家可以參考,最后可看圖2013-11-11
MySQL count(*/column)查詢優(yōu)化的實(shí)現(xiàn)
count()是SQL中一個(gè)常用的聚合函數(shù),其被用來統(tǒng)計(jì)記錄的總數(shù),本文主要介紹了MySQL count(*/column)查詢優(yōu)化的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-09-09
Mysql中g(shù)roup by 使用中發(fā)現(xiàn)的問題
當(dāng)使用MySQL的GROUP BY語句時(shí),根據(jù)指定的列對(duì)結(jié)果進(jìn)行分組,這種情況通常是由于在 GROUP BY 中選擇的字段與其他非聚合字段不兼容,或者在 SELECT 子句中沒有正確使用聚合函數(shù)所導(dǎo)致的,本文給大家介紹Mysql中g(shù)roup by 使用中發(fā)現(xiàn)的問題,感興趣的朋友跟隨小編一起看看吧2024-06-06
MySQL安全配置向?qū)ysql_secure_installation詳解
這篇文章主要介紹了MySQL安全配置向?qū)ysql_secure_installation各項(xiàng)配置的含義,并依據(jù)經(jīng)驗(yàn)給予一了一些建議,需要的朋友可以參考下2014-03-03
MySQL 4G內(nèi)存服務(wù)器配置優(yōu)化
MySQL對(duì)于web架構(gòu)性能的影響最大,也是關(guān)鍵的核心部分。下面我們了解一下MySQL優(yōu)化的一些基礎(chǔ),MySQL自身(my.cnf)的優(yōu)化2017-07-07
Mysql 主從數(shù)據(jù)庫同步(centos篇)
Mysql 主從數(shù)據(jù)庫同步(centos篇),需要的朋友可以參考下。2011-05-05

