索引的操作


索引是一種有效組合數據的方式。通過索引,可以快速快速查詢到數據庫表對象中的特定記錄,是一種提供性能的常用方式

1、關於索引

使用索引可以提高從表中檢索數據的速度,索引由表中的一個字段和多個字段生成的鍵組成。

索引按存儲類型可分為:B型樹索引(BTREE)和哈希索引。

MySQL支持6種索引,分別為普通索引、唯一索引、全文索引、單列索引、多列索引、空間索引。

過多的索引會占據大量的磁盤空間。

一下情況適合創建索引:

  • 經常被查詢的字段,即在WHERE子句中經常出現的字段
  • 在分組的字段,即在GROUP BY子句中出現的字段
  • 存在依賴關系的子表和父表之間的聯合查詢,即主鍵或外鍵字段
  • 設置唯一完整性約束的字段

2、創建表時創建普通索引

普通索引:在創建索引時,不附加任何限制條件(唯一,非空等限制),該類型的索引可以創建在任何數據類型的字段上。

語法形式:

create table table_name(

  屬性名 數據類型,

  ……

  index|key [索引名](屬性名1 [長度] [ASC|DESC])

3、在已經存在的表上創建普通索引

語法形式:

create index 索引名 on table_name (屬性名 [長度] [ASC|DESC]);

4、通過SQL中語句alter table創建普通索引

語法形式:

alter table table_name add index|key 索引名(屬性名 [長度]  [ASC|DESC]);

5、創建表時創建唯一索引

唯一索引:在創建索引時,限制索引的值必須是唯一的。

在MySQL中,根據索引的創建方式,分為手動索引和自動索引兩種。

自動索引,是指在數據庫表里設置完整性約束時,該表會被系統自動創建索引。手動索引,是指手動在表上創建索引。當設置表的某個字段為主鍵或唯一完整性約束時,系統就會自動創建關聯該字段的唯一索引。

語法形式:

create table table_name(

  屬性名 數據類型,

  ……

  unique index|key [索引名](屬性名1 [長度] [ASC|DESC])

);

6、在已經存在的表上創建唯一索引

語法形式:

create unique index 索引名 on table_name (屬性名 [長度] [ASC|DESC]);

7、通過SQL語句alter table創建唯一索引

語法形式:

alter table table_name add unique index|key 索引名(屬性名 [長度] [ASC|DESC]);

8、刪除索引

刪除索引即刪除表中已存在的索引。之所以要刪除索引,是由於這些索引會降低更新速度,影響數據庫的性能。

語法形式:

drop index 索引名 on table_name;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM