iT邦幫忙

2022 iThome 鐵人賽

DAY 24
0

索引 Index

索引Index是一種提高表中操作速度的數據結構,適用於快速隨機查找,對大型或高併發資料庫來說相當有用。

優點:資料庫在沒有索引時,要查找某項紀錄就必須全表掃描,索引能對特定欄位分類排序並建立對應關係

缺點:佔用內存,降低寫入速度

創建索引

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

INDEX前面可以加UNIQUE來避免重複

查看索引

SHOW INDEXES IN table_name ;

Clustered index 聚合索引

1.聚合索引定義表資料在資料庫中存儲的物理順序的索引
2.每表只能有一個聚集索引。默認情況下,會在主鍵列上創建聚集索引。

Non-Clustered Indexes 非聚合索引

1.非聚集索引在物理上不定義將記錄插入表中的順序
2.用於加速搜尋
3.每個表可以有多個非聚集索引

前綴索引Prefix Indexes

索引越短越好,但是假設被設為所引的欄位是CHAR、VARCHAR的姓名等欄位,為了避免降低搜尋速度,可以使用Prefix Indexes。

全文索引Fulltext Indexes

範例:假設想要在網站建立一個搜尋功能,網站所有的資料都存在資料庫,如何開發一個站內的搜尋引擎,讓使用者能夠輸入關鍵字來尋找

1.沒有索引的情況下,使用LIKE來進行搜索就必須進行全表掃描。

2.要找到資料,使用者必須輸入一模一樣的關鍵字,無法達成模糊搜尋。

3.全文索引對特定字串建立索引,就像一个字典

CREATE FULLTEXT INDEX index_name
ON table_name(idx_column_name,...)

上一篇
Day23-MySQL-踏出資料庫設計的第三步-正規化
下一篇
Day25-MySQL-設計大電商網站的主鍵
系列文
MySQL,我的超人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言