本文是關於mysql中索引的基礎知識。主要講了索引的意義與原理、建立與刪除的操作。並未涉及到索引的資料結構、高效能策略等。
一、概述
1.索引的意義:用於提高資料庫檢索資料的效率,提高資料庫效能。
資料庫在檢索資料時,如果沒有索引,則只能從第一條記錄開始逐條查詢,效率很低,新增索引可以明顯提公升效率。
2.索引的原理:索引儲存了資料庫的表中的關鍵字的值。關鍵字是索引用來搜尋資料的依據,可以是一列,也可以是幾列,還可以是一列的開頭部分(字首索引)。
需要查詢某條記錄時,先在索引中查詢該記錄關鍵字的值,然後根據匹配的索引記錄找到對應的資料行。
3.其他要點:
(1)乙個表可以建立多個索引;但由於索引檔案儲存在硬碟上,每次更新資料都會自動維護索引,從而對硬碟進行讀寫,
所以不宜創
建過多的索引。
(2)查詢索引時,可以查詢整個關鍵字,也可以查詢關鍵字中的部分列,還可以只查詢某一列值的開頭部分(字首查詢)。
(3)建立主鍵約束、唯一性約束時,會自動建立主索引、唯一性索引,索引名和約束名相同,刪除了索引也就是刪除了約束;
建立外來鍵約束時,會自動建立乙個普通索引,索引名和約束名相同。
二、索引的建立
1.關鍵字的選取原則:
優先選擇這些列作為關鍵字:
避免選取從不出現在where子句中的列,和更新頻繁的列。
2.建立索引
(1)建立表時建立索引:
create table 表名(
列1 資料型別 約束條件,
列2 資料型別 約束條件,
……其他約束條件,
索引型別 index 索引名(列名(長度))
)引擎、字符集、校對方式設定;
其中:
(2)在已有表上建立索引:
create 索引型別 index 索引名 on 表名 (列名(長度));
或
alter table 表名 add 索引型別 index 索引名(列名(長度));
3.檢視索引
show index from 表名;
show keys from 表名;
4.刪除索引
drop index 索引名 on 表名;
Mysql基礎知識 索引
mysql 索引 1.索引的概念 索引是建立在表上的,對資料庫表中的一列或多列的值進行排序的一種結構。索引有2種儲存型別 b型樹索引 和 雜湊索引。innodb和myisam儲存引擎支援b型樹索引,memory儲存引擎支援雜湊索引。優點 提高檢索資料的速度。對於有依賴關係的子表和父表之間的聯合,可提...
mysql基礎知識之索引
mysql索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度。索引其實和字典的目錄很相似,字典可以根據拼音和部首偏旁快速查詢到指定的字。對於mysql資料庫來說,索引是乙個排序的列表,在這個列表中儲存著索引的值和包含這個值的資料所在行的實體地址,在資料十分龐大的時候,...
索引基礎知識
sql server 2005 其他版本 0 共 1 對本文的評價是有幫助 評價此主題 索引是與表或檢視關聯的磁碟上結構,可以加快從表或檢視中檢索行的速度。索引包含由表或檢視中的一列或多列生成的鍵。這些鍵儲存在乙個結構 b 樹 中,使 sql server 可以快速有效地查詢與鍵值關聯的行。表或檢視...