国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

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

2024-07-24 13:08:45
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了MySQL中對(duì)于索引的基本增刪查改操作總結(jié),索引可以提高M(jìn)ySQL的檢索速度,需要的朋友可以參考下
 

創(chuàng)建索引

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

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

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

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

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

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

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

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

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

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

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

刪除索引

在MySQL中刪除索引的方法非常簡(jiǎn)單,其完整語(yǔ)法如下:

--刪除指定表中指定名稱的索引ALTER TABLE table_nameDROP INDEX index_name;

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

--刪除名稱為idx_user_username的索引ALTER TABLE userDROP INDEX idx_user_username;

修改索引

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

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

查看索引

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

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


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到MYSQL教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 太原市| 松江区| 寻乌县| 敖汉旗| 确山县| 红河县| 江山市| 南昌市| 高青县| 阜新市| 常德市| 大埔县| 唐山市| 湖南省| 营山县| 鄂托克旗| 海口市| 化隆| 隆化县| 胶南市| 化隆| 芦溪县| 邹平县| 商河县| 正蓝旗| 武山县| 忻州市| 综艺| 平安县| 化州市| 镇江市| 郎溪县| 阿瓦提县| 菏泽市| 合水县| 镇江市| 酉阳| 泸水县| 平江县| 广水市| 封丘县|