第一節:索引的引入
索引定義:索引是由數據庫表中一列或者多列組合而成,其作用是提高對表中數據的查詢速度;
類似於圖書的目錄,方便快速定位,尋找指定的內容;
第二節:索引的優缺點
優點:提高查詢數據的速度;
缺點:創建和維護索引的時間增加了;
第三節:索引實例
第四節:索引分類
1,普通索引
這類索引可以創建在任何數據類型中;
2,唯一性索引
使用 UNIQUE 參數可以設置,在創建唯一性索引時,限制該索引的值必須是唯一的;
3,全文索引
使用 FULLTEXT 參數可以設置,全文索引只能創建在 CHAR,VARCHAR,TEXT 類型的字段上。主要作用
就是提高查詢較大字符串類型的速度;只有 MyISAM 引擎支持該索引,Mysql 默認引擎不支持;
4,單列索引
在表中可以給單個字段創建索引,單列索引可以是普通索引,也可以是唯一性索引,還可以是全文索引;
5,多列索引
多列索引是在表的多個字段上創建一個索引;
6,空間索引
使用 SPATIAL 參數可以設置空間索引。空間索引只能建立在空間數據類型上,這樣可以提高系統獲取空間數
據的效率;只有 MyISAM 引擎支持該索引,Mysql 默認引擎不支持;
第五節:創建索引
5.1 創建表的時候創建索引
CREATE TABLE 表名 (屬性名 數據類型 [完整性約束條件],
屬性名 數據類型 [完整性約束條件],
....
屬性名 數據類型
[UNIQUE | FULLTEXT | SPATIAL ] INDEX| KEY
[別名] (屬性名 1 [(長度)] [ASC | DESC])
);
1,創建普通索引
CREATE TABLE t_user1(id INT , userName VARCHAR(20), PASSWORD VARCHAR(20), INDEX (userName) );
2,創建唯一性索引
CREATE TABLE t_user2(id INT , userName VARCHAR(20), PASSWORD VARCHAR(20), UNIQUE INDEX index_userName(userName) );
3,創建全文索引
mysql不支持。
4,創建單列索引
5,創建多列索引
CREATE TABLE t_user3(id INT , userName VARCHAR(20), PASSWORD VARCHAR(20), INDEX index_userName_password(userName,PASSWORD) );
6,創建空間索引
5.2 在已經存在的表上創建索引
CREATE [ UNIQUE | FULLTEXT | SPATIAL ] INDEX 索引名 ON 表名 (屬性名 [(長度)] [ ASC | DESC]);
CREATE TABLE t_user4(id INT , userName VARCHAR(20), PASSWORD VARCHAR(20) ); CREATE INDEX index_userName ON t_user4(userName); CREATE UNIQUE INDEX index_userName ON t_user4(userName); CREATE INDEX index_userName_password ON t_user4(userName,PASSWORD);
5.3 用 ALTER TABLE 語句來創建索引
ALTER TABLE 表名 ADD [ UNIQUE | FULLTEXT | SPATIAL ] INDEX 索引名 (屬性名 [(長度)] [ ASC | DESC]);
ALTER TABLE t_user5 ADD INDEX index_userName(userName); ALTER TABLE t_user5 ADD UNIQUE INDEX index_userName(userName); ALTER TABLE t_user5 ADD INDEX index_userName_password(userName,PASSWORD);
第六節:刪除索引
DROP INDEX 索引名 ON 表名 ;
DROP INDEX index_userName ON t_user5; DROP INDEX index_userName_password ON t_user5;