首頁 資料庫 mysql教程 MySQ索引操作命令总结(创建、重建、查询和删除索引命令详解)_MySQL

MySQ索引操作命令总结(创建、重建、查询和删除索引命令详解)_MySQL

Jun 01, 2016 pm 01:17 PM
數據表

以下所列示例中中 `table_name` 表示数据表名,`index_name` 表示索引名,column list 表示字段列表(如:`id`,`order_id`)。

1、创建索引

索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引。以下命令语句分别展示了如何创建主键索引(PRIMARY KEY),联合索引(UNIQUE)和普通索引(INDEX)的方法。

mysql>ALTER TABLE `table_name` ADD INDEX `index_name` (column list);
mysql>ALTER TABLE `table_name` ADD UNIQUE `index_name` (column list);
mysql>ALTER TABLE `table_name` ADD PRIMARY KEY `index_name` (column list);
mysql>CREATE INDEX `index_name` ON `table_name` (column_list);
mysql>CREATE UNIQUE INDEX `index_name` ON `table_name` (column_list);

例如:
mysql>ALTER TABLE `article` ADD INDEX `id`;//给article表增加id索引

或者:
mysql>ALTER TABLE `article` ADD INDEX (`id`,`order_id`);给article表增加id索引,order_id索引

2、重建索引

重建索引在常规的数据库维护操作中经常使用。在数据库运行了较长时间后,索引都有损坏的可能,这时就需要重建。对数据重建索引可以起到提高检索效率。
mysql> REPAIR TABLE `table_name` QUICK;

3、查询数据表索引

MySQL查询表索引命令的有两种命令形式:

mysql> SHOW INDEX FROM `table_name`;

或者:
mysql> SHOW keys FROM `table_name`;

运行以上命令得到的结果将如下图,下面将将所得的结果中每列的意思做一下说明。

MySQ索引操作命令总结(创建、重建、查询和删除索引命令详解)_MySQL


Table 表的名称。
Non_unique 如果索引不能包括重复词,则为0。如果可以,则为1。
Key_name 索引的名称。
Seq_in_index 索引中的列序列号,从1开始。
Column_name 列名称。
Collation 列以什么方式存储在索引中。在MySQL中,有值‘A'(升序)或NULL(无分类)。
Cardinality 索引中唯一值的数目的估计值。通过运行ANALYZE TABLE或myisamchk -a可以更新。基数根据被存储为整数的统计数据来计数,所以即使对于小型表,该值也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机 会就越大。
Sub_part 如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。
Packed 指示关键字如何被压缩。如果没有被压缩,则为NULL。
Null 如果列含有NULL,则含有YES。如果没有,则该列含有NO。
Index_type 用过的索引方法(BTREE, FULLTEXT, HASH, RTREE)。
Comment 更多评注。

4、删除索引

删除索引可以使用ALTER TABLE或DROP INDEX语句来实现。DROP INDEX可以在ALTER TABLE内部作为一条语句处理,其格式如下:

mysql>DROP index `index_name` ON `table_name` (column list);
mysql>ALTER TABLE `table_name` DROP INDEX `index_name` (column list);
mysql>ALTER TABLE `table_name` DROP UNIQUE `index_name` (column list);
mysql>ALTER TABLE `table_name` DROP PRIMARY KEY `index_name` (column list);

在前面的三条语句中,都删除了table_name中的索引index_name。而在最后一条语句中,只在删除PRIMARY KEY索引中使用,因为一个表只可能有一个PRIMARY KEY索引,因此也可不指定索引名。如果没有创建PRIMARY KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。如果从表中删除某列,则索引会受影响。对于多列组合的索引,如果删除其中的某列,则该列也会从索引中删除。如果删除组成索引的所有列,则整个索引将被删除。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

MySQL中的資料表壓縮技術 MySQL中的資料表壓縮技術 Jun 16, 2023 am 08:16 AM

MySQL是一種常見的關聯式資料庫,是許多網站和應用程式的核心元件。隨著資料量越來越大,如何優化MySQL的效能就變得尤為重要。其中一個關鍵領域是資料表的壓縮,在本文中我們將介紹MySQL中的資料表壓縮技術。壓縮表和非壓縮表MySQL中有兩種類型的資料表:壓縮表和非壓縮表。非壓縮表是MySQL預設的表類型,它使用固定長度的行格式,對資料進行儲存。這意味著數據

MySQL中的資料表DDL操作技術 MySQL中的資料表DDL操作技術 Jun 15, 2023 pm 07:55 PM

MySQL是一款非常受歡迎的開源關係型資料庫管理系統,它支援完整的DDL(資料定義語言)操作。 DDL是用來定義和管理資料庫中各種資料物件的語言,包括資料表、檢視和索引等。對於資料庫管理員和開發人員而言,熟練MySQL中資料表DDL操作技術非常重要。本文將詳細介紹MySQL中資料表DDL操作的技術與方法,並提供實際操作範例。一、建立資料表建立資料表是DDL中

mysql修改資料表名 mysql修改資料表名 Jun 20, 2023 pm 05:52 PM

MySQL修改資料表:1.先檢視資料庫中所有的表,代碼為:「SHOW TABLES;」;2、修改表名,代碼為:「ALTER TABLE 舊表名 RENAME [TO] 新表名;」。 3.檢查表名是否修改成功,代碼為:“SHOW TABLES;”

MySQL中的資料表重載技巧 MySQL中的資料表重載技巧 Jun 15, 2023 pm 11:28 PM

MySQL是一種開源關係型資料庫管理系統,它的基本功能在資料庫設計、資料儲存和管理方面非常優秀。在MySQL中,資料表是資料儲存的最基本單元。在實際應用中,資料表的重載是一種非常常見的操作技巧,它可以幫助我們提高資料庫的運作效率,並提升系統的穩定性。本文將從MySQL中資料表重載的概念、原理和實務應用等方面詳細介紹這項操作技巧。一、什麼是資料表重載資料表重載是

利用MySQL的AVG函數計算資料表中數字列的平均值方法 利用MySQL的AVG函數計算資料表中數字列的平均值方法 Jul 24, 2023 pm 09:52 PM

利用MySQL的AVG函數計算資料表中數字列的平均值方法簡介:MySQL是一種開源的關聯式資料庫管理系統,擁有豐富的內建函數來處理和計算資料。其中,AVG函數是用來計算數字列的平均值的函數。本文將介紹如何使用AVG函數來計算MySQL資料表中數字列的平均值,並提供相關的程式碼範例。一、建立範例資料表首先,我們需要建立一個範例資料表來進行示範。假設我們有一個名為

如何利用thinkorm實現資料表之間的關聯查詢 如何利用thinkorm實現資料表之間的關聯查詢 Aug 01, 2023 am 08:25 AM

如何利用thinkorm實作資料表之間的關聯查詢引言:在進行資料庫開發中,常常會碰到需要在多個資料表之間進行關聯查詢的情況。利用thinkorm這個優秀的資料庫ORM框架,可以輕鬆實現資料表的關聯查詢,提高開發效率。本文將介紹如何利用thinkorm實作資料表之間的關聯查詢,並提供程式碼範例幫助讀者更好地理解。一、基本概念在進行關聯查詢之前,首先需要了解th

如何實現MySQL底層優化:資料表的水平和垂直分割策略 如何實現MySQL底層優化:資料表的水平和垂直分割策略 Nov 08, 2023 pm 06:57 PM

如何實現MySQL底層最佳化:資料表的水平和垂直分割策略,需要具體程式碼範例引言:在大型應用場景下,MySQL資料庫經常面臨著大量資料的儲存和查詢壓力。為了解決這個問題,MySQL提供了資料表的分割策略,包括水平分割(Horizo​​ntalPartitioning)和垂直分割(VerticalPartitioning)。本文將介紹如何實作MySQL底層最佳化,重

MySQL中如何使用MAX函數找到資料表中最大的數值 MySQL中如何使用MAX函數找到資料表中最大的數值 Jul 25, 2023 pm 09:49 PM

MySQL中如何使用MAX函數來找到資料表中最大的數值引言:在MySQL中,我們經常需要對資料表進行各種查詢和分析,其中包括找出資料表中的最大數值。使用MAX函數可以輕鬆找到資料表中的最大值,並且在進一步處理資料時非常有用。本文將介紹如何使用MAX函數來找出資料表中最大的數值,並給出對應的程式碼範例。一、MAX函數簡介MAX函數是MySQL中的一個聚合函數,用

See all articles