MySQL索引創建,查看,刪除,修改操作詳解

      網友投稿 1340 2025-04-03

      創建索引


      CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON table_name (index_col_name,...)

      1

      2

      3

      其中對應的語法變量信息如下:

      [UNIQUE|FULLTEXT|SPATIAL]

      1

      中括號中的這三個關鍵字表示創建的索引類型,它們分別表示唯一索引、全文索引、空間索引三種不同的索引類型。如果我們不指定任何關鍵字,則默認為普通索引。

      index_name

      index_name表示索引的名稱,由用戶自行定義,以便于以后對該索引進行修改等管理操作。

      index_type

      index_type表示索引的具體實現方式,在Mysql中,有兩種不同形式的索引——BTREE索引和HASH索引。在存儲引擎為MyISAM和InnoDB的表中只能使用BTREE,其默認值就是BTREE;在存儲引擎為MEMORY或者HEAP的表中可以使用HASH和BTREE兩種類型的索引,其默認值為HASH。

      index_col_name

      index_col_name表示需要創建索引的字段名稱,我們還可以針對多個字段創建復合索引,只需要在多個字段名稱之間以英文逗號隔開即可。

      此外,對于CHAR或VARCHAR類型的字段,我們還可以只使用字段內容前面的一部分來創建索引,只需要在對應的字段名稱后面加上形如(length)的指令即可,表示只需要使用字段內容前面的length個字符來創建索引。在這里,我們以User表的username字段(類型為VARCHAR(50))為例,使用username字段的6個字符前綴來創建索引。

      CREATE INDEX idx_user_username ON user (username(6));

      1

      由于多數字段的前6個字符通常不同,所以此索引不會比使用字段的全部內容創建的索引速度慢很多。另外,使用字段的一部分創建索引可以使索引文件大大減小,從而節省了大量的磁盤空間,有可能提高INSERT操作的速度。

      Mysql中,前綴長度最大值為255字節。對于存儲引擎為MyISAM或InnoDB的數據表,前綴最長為1000字節。

      MySQL索引的創建,查看,刪除,修改操作詳解

      必須注意的是,在MySQL中,對于TEXT和BLOB這種大數據類型的字段,必須給出前綴長度(length)才能成功創建索引。

      備注1:上述創建索引的語法還具有以下變體:

      ALTER TABLE table_name ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name (index_col_name,...) [USING index_type]

      1

      2

      備注2:在MySQL中,只有當數據表的存儲引擎為MyISAM, InnoDB或BDB類型時,你才能向具有NULL值的列或者數據類型為TEXT或BLOB的列添加索引。

      刪除索引

      在MySQL中刪除索引的方法非常簡單,其完整語法如下:

      –刪除指定表中指定名稱的索引

      ALTER TABLE table_name DROP INDEX index_name;

      1

      2

      在這里,我們編寫SQL語句將上面創建索引的例子中的索引idx_user_username刪除掉,代碼詳情如下:

      –刪除名稱為idx_user_username的索引

      ALTER TABLE user DROP INDEX idx_user_username;

      1

      2

      修改索引

      MySQL并沒有提供修改索引的直接命令,一般需要先刪除原索引,再根據需要創建個同名索引,從而曲線救國實現修改索引操作。

      先刪除

      ALTER TABLE user DROP INDEX idx_user_username;

      1

      2

      再以修改后的內容創建同名索引

      CREATE INDEX idx_user_username ON user (username(8));

      1

      查看索引

      在MySQL中,要查看某個數據庫表中的索引也非常簡單,只需要使用以下兩個命令中的任意一種即可。

      –如果查看索引前,沒有使用use db_name等命令指定具體的數據庫,則必須加上FROM db_name

      SHOW INDEX FROM table_name [FROM db_name]

      1

      –如果查看索引前,沒有使用user db_name等命令指定具體的數據庫,則必須加上db_name.前綴

      SHOW INDEX FROM [db_name.]table_name

      1

      MySQL 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel表格取值范圍函數(excel中取值范圍怎么表示)
      下一篇:word文檔怎么顯示兩頁
      相關文章
      亚洲国产精品无码av| 亚洲Av永久无码精品三区在线| 亚洲欧洲精品国产区| 亚洲人成在线观看| 亚洲电影一区二区三区| 亚洲av色福利天堂| 91亚洲精品第一综合不卡播放| 亚洲国产成人精品不卡青青草原| 亚洲AV无码第一区二区三区| 亚洲av无码无在线观看红杏| 亚洲av永久无码精品表情包| 亚洲毛片在线观看| 亚洲黄色在线网站| 亚洲网站视频在线观看| 亚洲大香伊人蕉在人依线| 亚洲人成综合在线播放| 中文字幕亚洲男人的天堂网络| 天堂亚洲国产中文在线| 亚洲色大成网站www尤物| 亚洲色成人网站WWW永久四虎 | 亚洲精品无码专区久久久 | 亚洲无人区午夜福利码高清完整版| 老司机亚洲精品影视www| 国产精品亚洲综合一区| 丁香五月亚洲综合深深爱| 亚洲毛片αv无线播放一区| 亚洲AV午夜福利精品一区二区| 亚洲a在线视频视频| 亚洲黄色免费观看| 亚洲AV无码久久久久网站蜜桃| 色老板亚洲视频免在线观 | 亚洲AV无码成人精品区在线观看| 亚洲欧洲日产国码久在线观看| 精品亚洲成AV人在线观看| 亚洲码一区二区三区| 99热亚洲色精品国产88| 国产偷国产偷亚洲清高APP| 亚洲中文字幕无码爆乳av中文| 亚洲色欲色欲www在线丝| 夜夜亚洲天天久久| 亚洲午夜久久久精品电影院|