一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - Mysql - MySQL中對于索引的基本增刪查改操作總結(jié)

MySQL中對于索引的基本增刪查改操作總結(jié)

2020-05-31 15:33MYSQL教程網(wǎng) Mysql

這篇文章主要介紹了MySQL中對于索引的基本增刪查改操作總結(jié),索引可以提高MySQL的檢索速度,需要的朋友可以參考下

創(chuàng)建索引

MySQL創(chuàng)建索引的語法如下:

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

其中對應(yīng)的語法變量信息如下:

[UNIQUE|FULLTEXT|SPATIAL]
中括號中的這三個關(guān)鍵字表示創(chuàng)建的索引類型,它們分別表示唯一索引、全文索引、空間索引三種不同的索引類型。如果我們不指定任何關(guān)鍵字,則默認為普通索引。
index_name
index_name表示索引的名稱,由用戶自行定義,以便于以后對該索引進行修改等管理操作。
index_type
index_type表示索引的具體實現(xiàn)方式,在MySQL中,有兩種不同形式的索引——BTREE索引和HASH索引。在存儲引擎為MyISAM和InnoDB的表中只能使用BTREE,其默認值就是BTREE;在存儲引擎為MEMORY或者HEAP的表中可以使用HASH和BTREE兩種類型的索引,其默認值為HASH。
index_col_name
index_col_name表示需要創(chuàng)建索引的字段名稱,我們還可以針對多個字段創(chuàng)建復(fù)合索引,只需要在多個字段名稱之間以英文逗號隔開即可。
此外,對于CHAR或VARCHAR類型的字段,我們還可以只使用字段內(nèi)容前面的一部分來創(chuàng)建索引,只需要在對應(yīng)的字段名稱后面加上形如(length)的指令即可,表示只需要使用字段內(nèi)容前面的length個字符來創(chuàng)建索引。在這里,我們以User表的username字段(類型為VARCHAR(50))為例,使用username字段的6個字符前綴來創(chuàng)建索引。

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

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

在MySQL中,前綴長度最大值為255字節(jié)。對于存儲引擎為MyISAM或InnoDB的數(shù)據(jù)表,前綴最長為1000字節(jié)。

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

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

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

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

刪除索引

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

?
1
2
3
--刪除指定表中指定名稱的索引
ALTER TABLE table_name
DROP INDEX index_name;

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

?
1
2
3
--刪除名稱為idx_user_username的索引
ALTER TABLE user
DROP INDEX idx_user_username;

修改索引

在MySQL中并沒有提供修改索引的直接指令,一般情況下,我們需要先刪除掉原索引,再根據(jù)需要創(chuàng)建一個同名的索引,從而變相地實現(xiàn)修改索引操作。

?
1
2
3
4
5
--先刪除
ALTER TABLE user
DROP INDEX idx_user_username;
--再以修改后的內(nèi)容創(chuàng)建同名索引
CREATE INDEX idx_user_username ON user (username(8));

查看索引

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

?
1
2
3
4
--如果查看索引前,沒有使用user db_name等命令指定具體的數(shù)據(jù)庫,則必須加上FROM db_name
SHOW INDEX FROM table_name [FROM db_name]
--如果查看索引前,沒有使用user db_name等命令指定具體的數(shù)據(jù)庫,則必須加上db_name.前綴
SHOW INDEX FROM [db_name.]table_name

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 天天爱综合| 四虎永久免费在线观看 | 久久这里只有精品国产精品99 | 午夜亚洲WWW湿好爽 午夜想想爱午夜剧场 | 国产射频放大器 | 国产精品久久久久无毒 | 十大免费b2b网站 | 亚洲xxxxxhd奶水女人 | 国产精品久久久久久久久久久久久久 | 小早川怜子视频在线观看 | 好大好硬好深好爽想要小雪 | 久久99国产精品二区不卡 | 国产一级片免费视频 | 亚洲 欧美 国产 在线观看 | 天天做天天爰夜夜爽 | 亚洲精品第二页 | 精品精品久久宅男的天堂 | 暖暖高清日本在线 | 欧美大屁屁 | 无人在线高清观看 | 午夜熟女插插XX免费视频 | 四虎新网址 | 2019午夜福合集高清完整版 | 国产福利你懂的 | 2022天天干 | 亚洲精品tv久久久久久久久久 | 成人国产午夜在线视频 | 欧美日韩国产亚洲一区二区三区 | 欧美在线播放一区二区 | 国产私人影院 | 日本色女 | 亚洲一欧洲中文字幕在线 | 午夜理论电影在线观看亚洲 | 波多野结衣被绝伦强在线观看 | 欧美特黄aaaaaa| 日本孕妇与黑人xxxxxx | 韩国三级理韩国三级理人伦 | 午夜精品久久久内射近拍高清 | 美女光屁股网站 | 精品日韩欧美一区二区三区 | chinese老头和老太交hd |