欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2016年01月18日 15:00:41   投稿:goldensun  
這篇文章主要介紹了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)建的索引類(lèi)型,它們分別表示唯一索引、全文索引、空間索引三種不同的索引類(lèi)型。如果我們不指定任何關(guān)鍵字,則默認(rèn)為普通索引。
index_name
index_name表示索引的名稱(chēng),由用戶(hù)自行定義,以便于以后對(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兩種類(lèi)型的索引,其默認(rèn)值為HASH。
index_col_name
index_col_name表示需要?jiǎng)?chuàng)建索引的字段名稱(chēng),我們還可以針對(duì)多個(gè)字段創(chuàng)建復(fù)合索引,只需要在多個(gè)字段名稱(chēng)之間以英文逗號(hào)隔開(kāi)即可。
此外,對(duì)于CHAR或VARCHAR類(lèi)型的字段,我們還可以只使用字段內(nèi)容前面的一部分來(lái)創(chuàng)建索引,只需要在對(duì)應(yīng)的字段名稱(chēng)后面加上形如(length)的指令即可,表示只需要使用字段內(nèi)容前面的length個(gè)字符來(lái)創(chuàng)建索引。在這里,我們以User表的username字段(類(lèi)型為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é)省了大量的磁盤(pán)空間,有可能提高INSERT操作的速度。

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

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

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

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

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

刪除索引

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

--刪除指定表中指定名稱(chēng)的索引
ALTER TABLE table_name
DROP INDEX index_name;

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

--刪除名稱(chēng)為idx_user_username的索引
ALTER TABLE user
DROP INDEX idx_user_username;

修改索引

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

--先刪除
ALTER TABLE user
DROP 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_name
SHOW 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)文章

  • MySQL查詢(xún)重復(fù)數(shù)據(jù)(刪除重復(fù)數(shù)據(jù)保留id最小的一條為唯一數(shù)據(jù))

    MySQL查詢(xún)重復(fù)數(shù)據(jù)(刪除重復(fù)數(shù)據(jù)保留id最小的一條為唯一數(shù)據(jù))

    查重是我們?cè)诠ぷ髦薪?jīng)常會(huì)遇到的一個(gè)需求,下面這篇文章主要給大家介紹了關(guān)于MySQL查詢(xún)重復(fù)數(shù)據(jù)(刪除重復(fù)數(shù)據(jù)保留id最小的一條為唯一數(shù)據(jù))的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • MySQL5.7.27-winx64版本win10下載安裝教程圖解

    MySQL5.7.27-winx64版本win10下載安裝教程圖解

    這篇文章主要介紹了MySQL5.7.27-winx64版本win10下載安裝教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • MySQL數(shù)據(jù)庫(kù)入門(mén)之備份數(shù)據(jù)庫(kù)操作詳解

    MySQL數(shù)據(jù)庫(kù)入門(mén)之備份數(shù)據(jù)庫(kù)操作詳解

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)入門(mén)之備份數(shù)據(jù)庫(kù)操作,結(jié)合實(shí)例形式詳細(xì)分析了MySQL備份數(shù)據(jù)庫(kù)基本操作命令與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • 關(guān)于com.mysql.jdbc.Driver與com.mysql.cj.jdbc.Driver的區(qū)別

    關(guān)于com.mysql.jdbc.Driver與com.mysql.cj.jdbc.Driver的區(qū)別

    這篇文章主要介紹了關(guān)于com.mysql.jdbc.Driver與com.mysql.cj.jdbc.Driver的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 從零開(kāi)始搭建MySQL MMM架構(gòu)

    從零開(kāi)始搭建MySQL MMM架構(gòu)

    這篇文章主要介紹了從零開(kāi)始搭建MySQL MMM架構(gòu),本文講解了配置MySQL Relication、新建同步數(shù)據(jù)庫(kù)需要的用戶(hù)、同步主從數(shù)據(jù)庫(kù)、安裝MMM、配置MMM、啟動(dòng)MMM等問(wèn)題,需要的朋友可以參考下
    2015-04-04
  • mysql啟用skip-name-resolve模式時(shí)出現(xiàn)Warning的處理辦法

    mysql啟用skip-name-resolve模式時(shí)出現(xiàn)Warning的處理辦法

    在優(yōu)化MYSQL配置時(shí),加入 skip-name-resolve ,在重新啟動(dòng)MYSQL時(shí)檢查啟動(dòng)日志,發(fā)現(xiàn)有警告信息
    2012-07-07
  • 101個(gè)MySQL優(yōu)化技巧和提示

    101個(gè)MySQL優(yōu)化技巧和提示

    人們一直在推動(dòng)MySQL發(fā)展到它的極限。這里是101條調(diào)節(jié)和優(yōu)化MySQL安裝的技巧。一些技巧是針對(duì)特定的安裝環(huán)境的,但這些思路是通用的。我已經(jīng)把他們分成幾類(lèi),來(lái)幫助你掌握更多MySQL的調(diào)節(jié)和優(yōu)化技巧。
    2014-02-02
  • MySQL字段為 NULL的5大坑

    MySQL字段為 NULL的5大坑

    本文主要介紹了MySQL字段為 NULL的5大坑,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Mysql中報(bào)錯(cuò)函數(shù)floor()函數(shù)和rand()函數(shù)的配合使用及原理詳解

    Mysql中報(bào)錯(cuò)函數(shù)floor()函數(shù)和rand()函數(shù)的配合使用及原理詳解

    在項(xiàng)目中的SQL語(yǔ)句中遇到幾個(gè)數(shù)值處理函數(shù),看著有些懵,就小小的總結(jié)一下,這篇文章主要給大家介紹了關(guān)于Mysql中報(bào)錯(cuò)函數(shù)floor()函數(shù)和rand()函數(shù)的配合使用及原理的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • MySQL解決Navicat設(shè)置默認(rèn)字符串時(shí)的報(bào)錯(cuò)問(wèn)題

    MySQL解決Navicat設(shè)置默認(rèn)字符串時(shí)的報(bào)錯(cuò)問(wèn)題

    本文主要介紹了MySQL解決Navicat設(shè)置默認(rèn)字符串時(shí)的報(bào)錯(cuò),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06

最新評(píng)論