« MySQL优化实例Mysql limit 优化 复合索引的引用并应用于轻量级框架 »

mysql创建与删除索引

显示和删除索引

show index from structs;

drop index e_count_2 on structs;

创建索引-1

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
    [USING index_type]
    ON tbl_name (index_col_name,...)
index_col_name:
    col_name [(length)] [ASC | DESC]

create index I_e_count on structs(e_count ASC);

对于CHAR和VARCHAR列,只用一列的一部分就可创建索引。创建索引时,使用col_name(length)语法,对前缀编制索引。前缀包括每列 值的前length个字符。BLOB和TEXT列也可以编制索引,但是必须给出前缀长度。前缀最长为255字节。对于MyISAM和InnoDB表,前缀 最长为1000字节。注意前缀的限长以字节计,而CREATE INDEX语句中的前缀长度指的是字符的数目。对于使用多字节字符集的列,在指定列的前缀长度时,要考虑这一点。
只有当您正在使用MyISAM, InnoDB或BDB表类型时,您可以向有NULL值的列中添加索引.
只有当您正在使用MyISAM, BDB或InnoDB表类型时,您可以向BLOB或TEXT列中添加索引。

部分储存引擎允许在创建索引时指定索引类型。index_type指定语句的语法是USING type_name。不同的储存引擎所支持的type_name值已显示在下表中。如果列有多个索引类型,当没有指定index_type时,第一个类型是默认值。

存储引擎

允许的索引类型

MyISAM

BTREE

InnoDB

BTREE

MEMORY/HEAP

HASH, BTREE

示例:


处展示的语句用于创建一个索引,索引使用列名称的前10个字符。
CREATE INDEX part_of_name ON customer (name(10));
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不是保留词,因此会被认为是一个索引名称

创建索引-2

ALTER [IGNORE] TABLE tbl_name ADD INDEX [index_name] [index_type] (index_col_name,...)
alter table structs add index e_count_1 (e_count DESC);

一个教程:

http://61.151.239.85/iso/oracle/【数据库与编程】经典系列视频教程%20by%20crh123/MYSQL视频教程/MYSQL视频教程.iso

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

网站目录

最近发表

最新评论及回复

文章归档

Search

Powered By Z-Blog 1.8 Terminator(beta) Build 71218 Designed by Michael

Powered By Z-Blog Copyright 0-9999 subin.org.cn Rights Reserved. 晋ICP备08000685号