《Mysql實(shí)例MySQL索引操作命令小結(jié)》要點(diǎn):
本文介紹了Mysql實(shí)例MySQL索引操作命令小結(jié),希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
創(chuàng)建索引MYSQL應(yīng)用
創(chuàng)建索引的語(yǔ)法是:MYSQL應(yīng)用
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON tbl_name (index_col_name,...) index_col_name: col_name [(length)] [ASC | DESC]
對(duì)于CHAR和VARCHAR列,只用一列的一部分就可創(chuàng)建索引.創(chuàng)建索引時(shí),使用col_name(length)語(yǔ)法,對(duì)前綴編制索引.前綴包含每列值的前l(fā)ength個(gè)字符.BLOB和TEXT列也可以編制索引,但是必須給出前綴長(zhǎng)度.MYSQL應(yīng)用
此處展示的語(yǔ)句用于創(chuàng)建一個(gè)索引,索引使用列名稱的前10個(gè)字符.MYSQL應(yīng)用
CREATE INDEX part_of_name ON customer (name(10));
因?yàn)槎鄶?shù)名稱的前10個(gè)字符通常不同,所以此索引不會(huì)比使用列的全名創(chuàng)建的索引速度慢很多.另外,使用列的一部分創(chuàng)建索引可以使索引文件大大減小,從而節(jié)省了大量的磁盤(pán)空間,有可能提高INSERT操作的速度.MYSQL應(yīng)用
前綴最長(zhǎng)為255字節(jié).對(duì)于MyISAM和InnoDB表,前綴最長(zhǎng)為1000字節(jié).注意前綴的限長(zhǎng)以字節(jié)計(jì),而CREATE INDEX語(yǔ)句中的前綴長(zhǎng)度指的是字符的數(shù)目.對(duì)于使用多字節(jié)字符集的列,在指定列的前綴長(zhǎng)度時(shí),要考慮這一點(diǎn).MYSQL應(yīng)用
在MySQL中:MYSQL應(yīng)用
?只有當(dāng)您正在使用MyISAM, InnoDB或BDB表類型時(shí),您可以向有NULL值的列中添加索引.MYSQL應(yīng)用
?只有當(dāng)您正在使用MyISAM, BDB或InnoDB表類型時(shí),您可以向BLOB或TEXT列中添加索引.MYSQL應(yīng)用
一個(gè)index_col_name規(guī)約可以以ASC或DESC為結(jié)尾.這些關(guān)鍵詞將來(lái)可以擴(kuò)展,用于指定遞增或遞減索引值存儲(chǔ).目前,這些關(guān)鍵詞被分析,但是被忽略;索引值均以遞增順序存儲(chǔ).MYSQL應(yīng)用
部分儲(chǔ)存引擎允許在創(chuàng)建索引時(shí)指定索引類型.index_type指定語(yǔ)句的語(yǔ)法是USING type_name.不同的儲(chǔ)存引擎所支持的type_name值已顯示在下表中.如果列有多個(gè)索引類型,當(dāng)沒(méi)有指定index_type時(shí),第一個(gè)類型是默認(rèn)值.MYSQL應(yīng)用
存儲(chǔ)引擎MYSQL應(yīng)用 |
允許的索引類型MYSQL應(yīng)用 |
MyISAMMYSQL應(yīng)用 |
BTREEMYSQL應(yīng)用 |
InnoDBMYSQL應(yīng)用 |
BTREEMYSQL應(yīng)用 |
MEMORY/HEAPMYSQL應(yīng)用 |
HASH,?BTREEMYSQL應(yīng)用 |
示例:MYSQL應(yīng)用
CREATE TABLE lookup (id INT) ENGINE = MEMORY; CREATE INDEX id_index USING BTREE ON lookup (id);
TYPE type_name可以作為USING type_name的同義詞,用于指定索引類型.但是,USING是首選的格式.另外,在索引規(guī)約語(yǔ)法中,位于索引類型前面的索引名稱不能使用TYPE.這是因?yàn)?與USING不同,TYPE不是保存詞,因此會(huì)被認(rèn)為是一個(gè)索引名稱.MYSQL應(yīng)用
如果您指定的索引類型在給定的儲(chǔ)存引擎中不合法,但是有其它的索引類型適合引擎使用,并且不會(huì)影響查詢功能,則引擎應(yīng)使用此類型.MYSQL應(yīng)用
FULLTEXT索引只能對(duì)CHAR, VARCHAR和TEXT列編制索引,并且只能在MyISAM表中編制.MYSQL應(yīng)用
SPATIAL索引只能對(duì)空間列編制索引,并且只能在MyISAM表中編制.MYSQL應(yīng)用
使用alter的辦法創(chuàng)建索引MYSQL應(yīng)用
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) ;
查詢索引MYSQL應(yīng)用
SHOW INDEX FROM table_name;
刪除索引MYSQL應(yīng)用
drop index index_name on table_name ; alter table table_name drop index index_name ; alter table table_name drop primary key ;
其中,在前面的兩條語(yǔ)句中,都刪除了table_name中的索引index_name.而在最后一條語(yǔ)句中,只在刪除PRIMARY KEY索引中使用,因?yàn)橐粋€(gè)表只可能有一個(gè)PRIMARY KEY索引,因此不必要指定索引名.MYSQL應(yīng)用
歡迎參與《Mysql實(shí)例MySQL索引操作命令小結(jié)》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/13100.html