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

鍍金池/ 教程/ 數(shù)據(jù)庫/ 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 更新查詢
MySQL UNION 關(guān)鍵字
MySQL RAND 函數(shù)
創(chuàng)建 MySQL 數(shù)據(jù)庫
MySQL AVG 函數(shù)
MySQL Using Join
MySQL Handling Duplicates
MySQL SUM 函數(shù)
MySQL 數(shù)據(jù)類型
MySQL 插入查詢
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ù)庫
MySQL Where Clause
MySQL 選擇查詢
MySQL Like Clause
MySQL 正則表達(dá)式
一些非常有用的學(xué)習(xí)資源
MySQL NULL Values
MySQL 刪除查詢
MySQL 數(shù)據(jù)庫信息
一些有用的 MySQL 函數(shù)與子句
MySQL 刪除表
MySQL MAX 函數(shù)
MySQL SQRT 函數(shù)
MySQL 終止數(shù)據(jù)庫
連接 MySQL 服務(wù)器
MySQL IN 子句
MySQL CONCAT 函數(shù)
MySQL PHP語法

MySQL 索引

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

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

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

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

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

簡單而唯一的索引

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

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

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

CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author)

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

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

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

添加與刪除 INDEX 的ALTER 命令

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

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

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

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

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

mysql> ALTER TABLE testalter_tbl DROP INDEX (c);

利用 ALTER 命令來添加與刪除主鍵

添加主鍵也采用類似方式,但要保證主鍵一定在列上,是 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除非主鍵的索引,則必須指定索引名稱。

顯示索引信息

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

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