在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)庫(kù)/ MySQL 索引
MySQL 復(fù)制表
MySQL ALTER 命令
MySQL 安裝
MySQL 日期與時(shí)間方面的函數(shù)
MySQL SQL Injection
MySQL 排序結(jié)果
MySQL 臨時(shí)表
MySQL 介紹
MySQL 數(shù)據(jù)導(dǎo)出
MySQL 索引
MySQL 數(shù)值函數(shù)
MySQL 更新查詢(xún)
MySQL UNION 關(guān)鍵字
MySQL RAND 函數(shù)
創(chuàng)建 MySQL 數(shù)據(jù)庫(kù)
MySQL AVG 函數(shù)
MySQL Using Join
MySQL Handling Duplicates
MySQL SUM 函數(shù)
MySQL 數(shù)據(jù)類(lèi)型
MySQL 插入查詢(xún)
MySQL 字符串函數(shù)
MySQL Using Sequences
MySQL 管理
MySQL 數(shù)據(jù)導(dǎo)入
MySQL BETWEEN 子句
MySQL MIN 函數(shù)
創(chuàng)建 MySQL 表
MySQL Group By 子句
MySQL COUNT 函數(shù)
MySQL 匯報(bào)
MySQL 選擇數(shù)據(jù)庫(kù)
MySQL Where Clause
MySQL 選擇查詢(xún)
MySQL Like Clause
MySQL 正則表達(dá)式
一些非常有用的學(xué)習(xí)資源
MySQL NULL Values
MySQL 刪除查詢(xún)
MySQL 數(shù)據(jù)庫(kù)信息
一些有用的 MySQL 函數(shù)與子句
MySQL 刪除表
MySQL MAX 函數(shù)
MySQL SQRT 函數(shù)
MySQL 終止數(shù)據(jù)庫(kù)
連接 MySQL 服務(wù)器
MySQL IN 子句
MySQL CONCAT 函數(shù)
MySQL PHP語(yǔ)法

MySQL 索引

數(shù)據(jù)庫(kù)索引是一種能夠改善表操作速度的數(shù)據(jù)結(jié)構(gòu)。索引可以通過(guò)一個(gè)或多個(gè)列來(lái)創(chuàng)建,它可以提高隨機(jī)查詢(xún)的速度,并在檢索記錄時(shí)實(shí)現(xiàn)高效排序。

在創(chuàng)建索引時(shí),需要考慮哪些列會(huì)用于 SQL 查詢(xún),然后為這些列創(chuàng)建一個(gè)或多個(gè)索引。

事實(shí)上,索引也是一種表,保存著主鍵或索引字段,以及一個(gè)能將每個(gè)記錄指向?qū)嶋H表的指針。

數(shù)據(jù)庫(kù)用戶(hù)是看不到索引的,它們只是用來(lái)加速查詢(xún)的。數(shù)據(jù)庫(kù)搜索引擎使用索引來(lái)快速定位記錄。

INSERT 與 UPDATE 語(yǔ)句在擁有索引的表中執(zhí)行會(huì)花費(fèi)更多的時(shí)間,而 SELECT 語(yǔ)句卻會(huì)執(zhí)行得更快。這是因?yàn)椋谶M(jìn)行插入或更新時(shí),數(shù)據(jù)庫(kù)也需要插入或更新索引值。

簡(jiǎn)單而唯一的索引

可以為表創(chuàng)建唯一索引。唯一索引要求任意兩行的索引值不能相同。下面展示的就是在表中創(chuàng)建索引的語(yǔ)法格式:

CREATE UNIQUE INDEX index_name
ON table_name ( column1, column2,...);

也可以使用一或多個(gè)列來(lái)創(chuàng)建索引。比如說(shuō),表 tutorials_tbl 中,使用 tutorial_author 來(lái)創(chuàng)建索引。

CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author)

還可以為表創(chuàng)建簡(jiǎn)單索引,只需要在查詢(xún)時(shí)不帶 UNIQUE 關(guān)鍵字,就可創(chuàng)建簡(jiǎn)單索引。簡(jiǎn)單索引允許在表中復(fù)制值。

如果打算按照降序在列中索引數(shù)值,可以在列名后添加保留字 DESC。

mysql> CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author DESC)

添加與刪除 INDEX 的ALTER 命令

為表添加索引,可以采用4種語(yǔ)句。

  • ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) 該語(yǔ)句添加一個(gè)主鍵。意味著索引值必須是唯一的,不能為 NULL。
  • ALTER TABLE tbl_name ADD UNIQUE index_name (column_list) 該語(yǔ)句為必須唯一的值(除了 NULL 值之外,NULL 值可以多次出現(xiàn))創(chuàng)建索引。
  • ALTER TABLE tbl_name ADD INDEX index_name (column_list) 語(yǔ)句為可能多次出現(xiàn)的值創(chuàng)建一般索引。
  • ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list) 語(yǔ)句創(chuàng)建專(zhuān)用于文本搜索的 FULLTEXT 索引。

下面這個(gè)范例將為現(xiàn)有表添加索引。

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

可以使用 DROP 子句以及 ALTER 命令刪除索引,通過(guò)下面這個(gè)范例來(lái)刪除之前創(chuàng)建的索引。

mysql> ALTER TABLE testalter_tbl DROP INDEX (c);

利用 ALTER 命令來(lái)添加與刪除主鍵

添加主鍵也采用類(lèi)似方式,但要保證主鍵一定在列上,是 NOT NULL。

下面這個(gè)范例將在現(xiàn)有表中添加主鍵,先使列為 NOT NULL,然后再將其作為主鍵。

mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);

同樣,也可以使用 ALTER 命令刪除一個(gè)主鍵。

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

如果要?jiǎng)h除非主鍵的索引,則必須指定索引名稱(chēng)。

顯示索引信息

使用 SHOW INDEX 命令可以列出表的所有索引。以垂直格式輸出(標(biāo)識(shí)為 \G)會(huì)比較便于查看,可避免單行內(nèi)容過(guò)長(zhǎng)。語(yǔ)法格式如下:

mysql> SHOW INDEX FROM table_name\G
........
上一篇:MySQL Where Clause下一篇:MySQL 安裝