萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MySQL索引創建 刪除 增加 修改命令

MySQL索引創建 刪除 增加 修改命令

在mysql中索引是我們對數據庫進行優化的一個很好的功能,下面我來給大家介紹mysql 索引的創建 刪除 增加 修改方法,希望些教程對各位朋友有所幫助。

簡單的唯一索引:

可以創建一個唯一索引的表。唯一的索引意味著兩個行不能擁有相同的索引值。這裡是語法來創建索引的表

 代碼如下 復制代碼 CREATE UNIQUE INDEX index_name
ON table_name ( column1, column2,...);

可以使用一個或多個列上創建索引。例如,我們可以創建一個索引的使用在表tutorials_tbl的tutorial_author列上

 代碼如下 復制代碼 CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author)

可以創建一個簡單的索引的表。只要省略UNIQUE關鍵字的查詢創建一個簡單的索引。簡單的索引允許重復表中的值。

如果你想在一列以降序索引值,可以在列名後添加保留字DESC:

 代碼如下 復制代碼

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

ALTER命令添加和刪除索引:

有四種類型的語句表添加索引:

 代碼如下 復制代碼 ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) :

這條語句添加一個主鍵,這意味著索引值必須是唯一的,不能是NULL。

 代碼如下 復制代碼 ALTER TABLE tbl_name ADD UNIQUE index_name (column_list):

這條語句創建一個索引,其值必須是唯一的(除NULL值,這可能會多次出現)。

 代碼如下 復制代碼 ALTER TABLE tbl_name ADD INDEX index_name (column_list):

這增加了一個普通的索引,其中的任何值,可能會出現多於一次。

 代碼如下 復制代碼 ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):

這將創建一個特殊的FULLTEXT索引,用於文本搜索的目的。

下面是這個例子,在現有的表添加索引。

 代碼如下 復制代碼

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

可以刪除任何INDEX通過使用DROP子句和使用ALTER命令。試試下面的例子上面創建的索引下降。

 代碼如下 復制代碼

mysql> ALTER TABLE testalter_tbl DROP INDEX (c);

可以刪除任何INDEX通過使用DROP子句t和使用ALTER命令。試試下面的例子上面創建的索引x。

ALTER命令來添加和刪除PRIMARY KEY:

您可以添加主鍵,以及在相同的方式中。但要確保主鍵這是NOT NULL的列上。

這是在現有的表添加主鍵的例子。這將NOT NULL列,然後將其添加為一個主鍵。

 代碼如下 復制代碼

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;

要刪除索引,這不是一個PRIMARY KEY,所以必須指定索引的名稱。

顯示索引信息:
您可以使用SHOW INDEX命令,列出所有相關聯的索引表。垂直格式輸出(指定由 G)往往是有用的這句話,以避免長時間行重疊:

試試下面的例子:

 代碼如下 復制代碼 mysql> SHOW INDEX FROM table_nameG

........

加索引
mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]);
例子:

 代碼如下 復制代碼 mysql> alter table employee add index emp_name (name);


加主關鍵字的索引

mysql> alter table 表名 add primary key (字段名);
例子:

 代碼如下 復制代碼 mysql> alter table employee add primary key(id);


加唯一限制條件的索引
mysql> alter table 表名 add
unique 索引名 (字段名);
例子:

 代碼如下 復制代碼 mysql> alter table employee add unique emp_name2(cardnumber);


查看某個表的索引

mysql> show index from 表名;
例子:

 代碼如下 復制代碼 mysql> show index from employee;


刪除某個索引
mysql> alter table 表名 drop index 索引名;
例子:

 代碼如下 復制代碼 mysql>alter table employee drop index emp_name;

總結索引與優化

1、選擇索引的數據類型

MySQL支持很多數據類型,選擇合適的數據類型存儲數據對性能有很大的影響。通常來說,可以遵循以下一些指導原則:

(1)越小的數據類型通常更好:越小的數據類型通常在磁盤、內存和CPU緩存中都需要更少的空間,處理起來更快。
(2)簡單的數據類型更好:整型數據比起字符,處理開銷更小,因為字符串的比較更復雜。在MySQL中,應該用內置的日期和時間數據類型,而不是用字符串來存儲時間;以及用整型數據類型存儲IP地址。
(3)盡量避免NULL:應該指定列為NOT NULL,除非你想存儲NULL。在MySQL中,含有空值的列很難進行查詢優化,因為它們使得索引、索引的統計信息以及比較運算更加復雜。你應該用0、一個特殊的值或者一個空串代替空值。

copyright © 萬盛學電腦網 all rights reserved