關於MySQL索引操作命令的小結
創建索引
創建索引的語法是:
複製代碼 代碼如下:
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
[USING index_type]
ON tbl_name (index_col_name,...)
index_col_name:
col_name [(length)] [ASC | DESC]
對於CHAR和VARCHAR列,只用一列的一部分就可創建索引。創建索引時,使用col_name(length)語法,對前綴編制索引。前綴包括每列值的前length個字符。BLOB和TEXT列也可以編制索引,但是必須給出前綴長度。
此處展示的語句用於創建一個索引,索引使用列名稱的前10個字符。
複製代碼 代碼如下:
CREATE INDEX part_of_name ON customer (name(10));
因為多數名稱的前10個字符通常不同,所以此索引不會比使用列的全名創建的索引速度慢很多。另外,使用列的一部分創建索引可以使索引文件大大減小,從而節省了大量的磁盤空間,有可能提高INSERT操作的速度。
前綴最長為255字節。對於MyISAM和InnoDB表,前綴最長為1000字節。注意前綴的限長以字節計,而CREATE INDEX語句中的'前綴長度指的是字符的數目。對於使用多字節字符集的列,在指定列的前綴長度時,要考慮這一點。
在MySQL中:
·只有當您正在使用MyISAM, InnoDB或BDB表類型時,您可以向有NULL值的列中添加索引。
·只有當您正在使用MyISAM, BDB或InnoDB表類型時,您可以向BLOB或TEXT列中添加索引。
一個index_col_name規約可以以ASC或DESC為結尾。這些關鍵詞將來可以擴展,用於指定遞增或遞減索引值存儲。目前,這些關鍵詞被分析,但是被忽略;索引值均以遞增順序存儲。
部分儲存引擎允許在創建索引時指定索引類型。index_type指定語句的語法是USING type_name。不同的儲存引擎所支持的type_name值已顯示在下表中。如果列有多個索引類型,當沒有指定index_type時,第一個類型是默認值。
存儲引擎
允許的索引類型
MyISAM
BTREE
InnoDB
BTREE
MEMORY/HEAP
HASH,BTREE
示例:
複製代碼 代碼如下:
CREATE TABLE lookup (id INT) ENGINE = MEMORY;
CREATE INDEX id_index USING BTREE ON lookup (id);
TYPE type_name可以作為USING type_name的同義詞,用於指定索引類型。但是,USING是首選的格式。另外,在索引規約語法中,位於索引類型前面的索引名稱不能使用TYPE。這是因為,與USING不同,TYPE不是保留詞,因此會被認為是一個索引名稱。
如果您指定的索引類型在給定的儲存引擎中不合法,但是有其它的索引類型適合引擎使用,並且不會影響查詢功能,則引擎應使用此類型。
FULLTEXT索引只能對CHAR, VARCHAR和TEXT列編制索引,並且只能在MyISAM表中編制。
SPATIAL索引只能對空間列編制索引,並且只能在MyISAM表中編制。
使用alter的方法創建索引
複製代碼 代碼如下:
alter table table_name add index index_name (column_list) ;
alter table table_name add unique (column_list) ;
alter table table_name add primary key (column_list) ;
查詢索引
複製代碼 代碼如下:
SHOW INDEX FROM table_name;
刪除索引
複製代碼 代碼如下:
drop index index_name on table_name ;
alter table table_name drop index index_name ;
alter table table_name drop primary key ;
其中,在前面的兩條語句中,都刪除了table_name中的索引index_name。而在最後一條語句中,只在刪除PRIMARY KEY索引中使用,因為一個表只可能有一個PRIMARY KEY索引,因此不需要指定索引名。
-
【精】銷售助理轉正工作總結
總結是指社會團體、企業單位和個人對某一階段的學習、工作或其完成情況加以回顧和分析,得出教訓和一些規律性認識的一種書面材料,它在我們的學習、工作中起到呈上啟下的作用,因此好好準備一份總結吧。我們該怎麼寫總結呢?以下是小編幫大家整理的銷售助理轉正工作總...
-
物業公司安全工作總結匯編14篇
總結就是把一個時間段取得的成績、存在的問題及得到的經驗和教訓進行一次全面系統的總結的書面材料,通過它可以正確認識以往學習和工作中的優缺點,因此我們要做好歸納,寫好總結。但是總結有什麼要求呢?以下是小編幫大家整理的物業公司安全工作總結,歡迎大家分享。物...
-
度考核教師個人工作總結
總結是在一段時間內對學習和工作生活等表現加以總結和概括的一種書面材料,它有助於我們尋找工作和事物發展的規律,從而掌握並運用這些規律,為此我們要做好回顧,寫好總結。我們該怎麼去寫總結呢?以下是小編精心整理的度考核教師個人工作總結,歡迎大家分享。度考核教師...
-
賓館收銀員個人工作總結9篇
總結是指對某一階段的工作、學習或思想中的經驗或情況進行分析研究,做出帶有規律性結論的書面材料,他能夠提升我們的書面表達能力,因此,讓我們寫一份總結吧。我們該怎麼寫總結呢?下面是小編收集整理的賓館收銀員個人工作總結,僅供參考,歡迎大家閲讀。賓館收銀員個人工...