資料庫索引

2021-07-02 14:30:10 字數 1645 閱讀 8198

包括普通索引,唯一索引,主鍵索引與組合索引

(1)普通索引

建立索引

create index indexname on mytable(username(length)); 

如果是char,varchar型別,length可以小於字段實際長度;如果是blob和text型別,必須指定 length,下同。

刪除索引的語法:

drop index [indexname] on mytable;  

(2)唯一索引

它與前面的普通索引類似,不同的就是:mysql資料庫索引列的值必須唯一,但允許有空值。如果是組合索引,

則列值的組合必須唯一。它有以下幾種建立方式:

建立索引

create unique index indexname on mytable(username(length)) 修改表結構

alter mytable add unique [indexname] on (username(length)) 建立表的時候直接指定

create table mytable( id int not null, username varchar(16) not null, unique [indexname] (username(length)) ); 

(3)主鍵索引

它是一種特殊的唯一索引,不允許有空值。一般是在建表的時候同時建立主鍵索引:

create table mytable( id int not null, username varchar(16) not null, primary key(id) );  

當然也可以用 alter 命令。記住:乙個表只能有乙個主鍵。

(4)組合索引

為了形象地對比單列索引和組合索引,為表新增多個字段:

create table mytable( id int not null, username varchar(16) not null, city varchar(50) not null, age int not null );  

為了進一步榨取mysql的效率,就要考慮建立組合索引。就是將 name, city, age建到乙個索引裡:

alter table mytable add index name_city_age (name(10),city,age); 建表時,usernname長度為 16,這裡用 10。這是因為一般情況下名 字的長度不會超過10,這樣會加速索引查詢速度,還會減少索引檔案的大小,提高insert的更新速度。

如果分別在 usernname,city,age上建立單列索引,讓該錶有3個單列索引,查詢時和上述的組合索引效率也會大不一樣,遠遠低於我們的組 合索引。雖然此時有了三個索引,但mysql只能用到其中的那個它認為似乎是最有效率的單列索引。

inner join(等值連線) 只返回兩個表中聯結字段相等的行

left join(左聯接) 返回包括左表中的所有記錄和右表中聯結字段相等的記錄

right join(右聯接) 返回包括右表中的所有記錄和左表中聯結字段相等的記錄

資料庫 資料庫索引

索引是儲存引擎用於快速找到記錄的一種資料結構。索引以檔案的形式儲存在磁碟中。索引可以包含乙個或多個列的值。儲存引擎查詢資料的時候,先在索引中找對應值,然後根據匹配的索引記錄找到對應的資料行。1.b tree索引 2.雜湊索引 myisam和innodb儲存引擎 只支援btree索引,也就是說預設使用...

資料庫mysql索引 資料庫 mysql索引

mysql 索引 mysql索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度。打個比方,如果合理的設計且使用索引的mysql是一輛蘭博基尼的話,那麼沒有設計和使用索引的mysql就是乙個人力三輪車。索引分單列索引和組合索引。單列索引,即乙個索引只包含單個列,乙個表可...

資料庫索引

索引 索引列唯一索引 主鍵索引 聚簇索引和非聚簇索引 如何建立索引 如何刪除索引 使用索引可快速訪問資料庫表中的特定資訊。索引是對資料庫表中一列或多列的值進行排序的一種結構,例如 employee 表的姓 lname 列。如果要按姓查詢特定職員,與必須搜尋表中的所有行相比,索引會幫助您更快地獲得該資...