簡(jiǎn)單介紹MySQL中索引的使用方法
數(shù)據(jù)庫(kù)索引是一個(gè)數(shù)據(jù)結(jié)構(gòu),提高操作的速度,在一個(gè)表中可以使用一個(gè)或多個(gè)列,提供兩個(gè)快速隨機(jī)查找和高效的順序訪問(wèn)記錄的基礎(chǔ)創(chuàng)建索引。
在創(chuàng)建索引時(shí),它應(yīng)該被認(rèn)為是將SQL查詢的那些列上創(chuàng)建一個(gè)或多個(gè)索引的列。
實(shí)際上,指數(shù)也保持主鍵或索引字段和指針的實(shí)際表中每條記錄的表型。
用戶無(wú)法看到索引,它們只是用來(lái)加快查詢速度,將用于數(shù)據(jù)庫(kù)搜索引擎找到的記錄速度非???。
INSERT和UPDATE語(yǔ)句表上的索引需要更多的時(shí)間,成為快速對(duì)這些表的SELECT語(yǔ)句。究其原因是,當(dāng)進(jìn)行插入或更新,數(shù)據(jù)庫(kù)以及需要惰性或更新索引值。
簡(jiǎn)單的唯一索引:
可以創(chuàng)建一個(gè)唯一索引的表。唯一的索引意味著兩個(gè)行不能擁有相同的索引值。這里是語(yǔ)法來(lái)創(chuàng)建索引的表
CREATE UNIQUE INDEX index_name ON table_name ( column1, column2,...);
可以使用一個(gè)或多個(gè)列上創(chuàng)建索引。例如,我們可以創(chuàng)建一個(gè)索引的使用在表tutorials_tbl的tutorial_author列上
CREATE UNIQUE INDEX AUTHOR_INDEX ON tutorials_tbl (tutorial_author)
可以創(chuàng)建一個(gè)簡(jiǎn)單的索引的表。只要省略UNIQUE關(guān)鍵字的查詢創(chuàng)建一個(gè)簡(jiǎn)單的索引。簡(jiǎn)單的索引允許重復(fù)表中的值。
如果你想在一列以降序索引值,可以在列名后添加保留字DESC:
mysql> CREATE UNIQUE INDEX AUTHOR_INDEX ON tutorials_tbl (tutorial_author DESC)
ALTER命令添加和刪除索引:
有四種類型的語(yǔ)句表添加索引:
- ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) : 這條語(yǔ)句添加一個(gè)主鍵,這意味著索引值必須是唯一的,不能是NULL。
- ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): 這條語(yǔ)句創(chuàng)建一個(gè)索引,其值必須是唯一的(除NULL值,這可能會(huì)多次出現(xiàn))。
- ALTER TABLE tbl_name ADD INDEX index_name (column_list): 這增加了一個(gè)普通的索引,其中的任何值,可能會(huì)出現(xiàn)多于一次。
- ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list): 這將創(chuàng)建一個(gè)特殊的FULLTEXT索引,用于文本搜索的目的。
下面是這個(gè)例子,在現(xiàn)有的表添加索引。
mysql> ALTER TABLE testalter_tbl ADD INDEX (c);
可以刪除任何INDEX通過(guò)使用DROP子句和使用ALTER命令。試試下面的例子上面創(chuàng)建的索引下降。
mysql> ALTER TABLE testalter_tbl DROP INDEX (c);
可以刪除任何INDEX通過(guò)使用DROP子句t和使用ALTER命令。試試下面的例子上面創(chuàng)建的索引x。
ALTER命令來(lái)添加和刪除PRIMARY KEY:
您可以添加主鍵,以及在相同的方式中。但要確保主鍵這是NOT NULL的列上。
這是在現(xiàn)有的表添加主鍵的例子。這將NOT NULL列,然后將其添加為一個(gè)主鍵。
mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL; mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);
可以使用ALTER命令刪除主鍵如下:
mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;
要?jiǎng)h除索引,這不是一個(gè)PRIMARY KEY,所以必須指定索引的名稱。
顯示索引信息:
您可以使用SHOW INDEX命令,列出所有相關(guān)聯(lián)的索引表。垂直格式輸出(指定由\ G)往往是有用的這句話,以避免長(zhǎng)時(shí)間行重疊:
試試下面的例子:
mysql> SHOW INDEX FROM table_name\G ........
相關(guān)文章
遠(yuǎn)程訪問(wèn)MySQL數(shù)據(jù)庫(kù)的方法小結(jié)
MySQL數(shù)據(jù)庫(kù)不允許從遠(yuǎn)程訪問(wèn)如何辦?本文提供了 3種解決思路方法2009-12-12十個(gè)節(jié)省時(shí)間的MySQL命令小結(jié)
編者在工作中積累起來(lái)了一些MySQL命令行客戶端技巧,這些技巧或多或少會(huì)幫助您節(jié)省大量的時(shí)間。2011-03-03MySQL動(dòng)態(tài)SQL拼接實(shí)例詳解
動(dòng)態(tài)SQL呢?首先是SQL語(yǔ)句,是根據(jù)條件來(lái)拼接SQL,下面這篇文章主要給大家介紹了關(guān)于MySQL動(dòng)態(tài)SQL拼接的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12mysql分頁(yè)的limit參數(shù)簡(jiǎn)單示例
這篇文章主要給大家介紹了關(guān)于mysql分頁(yè)的limit參數(shù)的相關(guān)資料,文中通過(guò)示例代碼以及圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12