MySQL基础知识---------CREATE INDEX语法
2014-02-21 13:54
253 查看
CREATE[UNIQUE|FULLTEXT|SPATIAL]INDEXindex_name
[USINGindex_type]
ONtbl_name(index_col_name,...)
index_col_name:
col_name[(length)][ASC|DESC]
CREATEINDEX被映射到一个ALTER
TABLE语句上,用于创建索引。请参见13.1.2节,“ALTER
TABLE语法”。
通常,当使用CREATETABLE创建表时,也同时在表中创建了所有的索引。请参见13.1.5节,“CREATE
TABLE语法”。CREATEINDEX允许您向已有的表中添加索引。
格式为(col1,col2,...)的一个列清单创建出一个多列索引。通过串接给定列中的值,确定索引值的格式。
对于CHAR和VARCHAR列,只用一列的一部分就可创建索引。创建索引时,使用col_name(length)语法,对前缀编制索引。前缀包括每列值的前length个字符。BLOB和TEXT列也可以编制索引,但是必须给出前缀长度。
此处展示的语句用于创建一个索引,索引使用列名称的前10个字符。
CREATEINDEXpart_of_nameONcustomer(name(10));
因为多数名称的前10个字符通常不同,所以此索引不会比使用列的全名创建的索引速度慢很多。另外,使用列的一部分创建索引可以使索引文件大大减小,从而节省了大量的磁盘空间,有可能提高INSERT操作的速度。
前缀最长为255字节。对于MyISAM和InnoDB表,前缀最长为1000字节。注意前缀的限长以字节计,而CREATE
INDEX语句中的前缀长度指的是字符的数目。对于使用多字节字符集的列,在指定列的前缀长度时,要考虑这一点。
在MySQL5.1中:
·只有当您正在使用MyISAM,
InnoDB或BDB表类型时,您可以向有NULL值的列中添加索引。
·只有当您正在使用MyISAM,
BDB或InnoDB表类型时,您可以向BLOB或TEXT列中添加索引。
一个index_col_name规约可以以ASC或DESC为结尾。这些关键词将来可以扩展,用于指定递增或递减索引值存储。目前,这些关键词被分析,但是被忽略;索引值均以递增顺序存储。
部分储存引擎允许在创建索引时指定索引类型。index_type指定语句的语法是USINGtype_name。不同的储存引擎所支持的type_name值已显示在下表中。如果列有多个索引类型,当没有指定index_type时,第一个类型是默认值。
存储引擎 | 允许的索引类型 |
MyISAM | BTREE |
InnoDB | BTREE |
MEMORY/HEAP | HASH,BTREE |
CREATETABLElookup(idINT)ENGINE=MEMORY;
CREATEINDEXid_indexUSINGBTREEONlookup(id);
TYPEtype_name可以作为USINGtype_name的同义词,用于指定索引类型。但是,USING是首选的格式。另外,在索引规约语法中,位于索引类型前面的索引名称不能使用TYPE。这是因为,与USING不同,TYPE不是保留词,因此会被认为是一个索引名称。
如果您指定的索引类型在给定的储存引擎中不合法,但是有其它的索引类型适合引擎使用,并且不会影响查询功能,则引擎应使用此类型。
要了解更多有关MySQL如何使用索引的信息,请参见
FULLTEXT索引只能对CHAR,
VARCHAR和TEXT列编制索引,并且只能在MyISAM表中编制。请参见
相关文章推荐
- MySQL语法及基础知识大全
- MySQL语法及基础知识大全
- MySQL基础知识---------ALTER TABLE/CREATE DATABASE语法
- mysql 基础语法知识
- mysql基础知识应用
- MySQL基础知识总结(一)
- mysql基础知识
- MySQL基础知识点(在网上总结的资料)
- SQL的详细语法介绍——对于学习数据库最基础知识一
- mysql基础知识
- Mysql基础知识点汇总
- MYSQL基础知识总结(一)
- android开发之java的一些基础知识详解,java编程语法,扎实自己的android基本功
- swift 基础语法知识
- mysql 基础知识
- mysql基础语法篇
- MySQL/MariaDB基础性知识及DDL操作详解
- mysql常用基础操作语法(六)--对数据排序和限制结果数量的条件查询【命令行模式】
- 英语基础知识,语法,音标
- XPath可以快速定位到Xml中的节点或者属性。XPath语法很简单,但是强大够用,它也是使用xslt的基础知识。