当前位置: 首页 > 编程笔记 >

MySQL索引操作命令小结

郑晨
2023-03-14
本文向大家介绍MySQL索引操作命令小结,包括了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索引,因此不需要指定索引名。

 类似资料:
  • 本文向大家介绍Linux操作系统操作MySQL常用命令小结,包括了Linux操作系统操作MySQL常用命令小结的使用技巧和注意事项,需要的朋友参考一下 下面给大家分享mysql常用命令, 以上所述是小编给大家介绍的Linux操作系统操作MySQL常用命令小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持!

  • 本文向大家介绍MySQL数据库操作常用命令小结,包括了MySQL数据库操作常用命令小结的使用技巧和注意事项,需要的朋友参考一下 创建数据库 最简单的方式: 或者是: 创建utf8编码的数据库: 那么在这个数据库下创建的所有数据表的默认字符集都会是utf8了,注意后面这句话 "COLLATE utf8_general_ci",大致意思是在排序时根据utf8变码格式来排序。 查看数据库列表: 使用数据

  • 无论建立主键索引还是普通索引,都要在表的对应列上创建,可以对单列创建索引,也可以对多列创建索引。 创建和删除主键索引 查询数据库,按主键查询速度最快的,每个表只能有一个主键列,但是可以有多个普通索引列。主键列要求列的所有内容必须唯一,而索引列不要求内容必须唯一。 在建表的时候指定(如上述典型建表语句) 建表后通过alter命令增加、删除主键索引 mysql> alter table app_mem

  • 简介 本文档作为Slitaz的命令快速索引. Linux命令包括文件处理, 系统维护级网络管理等等. 你也可以在命令行下浏览网页,在IRC里聊天, 编辑脚本甚至玩游戏. 注意必需以root身份才能处理硬盘及光驱. 你可以使用命令– su 变成系统管理员. 帮助及可用命令列表 大多数Linux命令都有提供本命令的帮助信息的选项。 通常此选项的形式为 --help . 以下命令列出拷贝命令的帮助信息。

  • 启动多个whistle 如果你想在同一台机器启动多个whistle,方便多个浏览器或者供多人使用,有两种方式: 切换到不同的系统用户,在每个系统用户启动一个whistle代理服务(每个服务的端口号可以用命令行参数w2 start -p xxxx来指定) 也可以通过切换规则目录和端口号的方式来解决(注意S、C都是大写, newStorageDir为空表示使用当前配置) w2 start -S new

  • 索引操作 使用 addIndex() 方法可以指定索引 <?php use Phinx\Migration\AbstractMigration; class MyNewMigration extends AbstractMigration { /** * Migrate Up. */ public function up() { $t