Mysql中索引的 创建,查看,删除,修改

创建索引

MySQL创建索引的语法如下:

?


1

2

3

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name

[USING index_type]

ON table_name (index_col_name,...)

其中对应的语法变量信息如下:

[UNIQUE|FULLTEXT|SPATIAL]
中括号中的这三个关键字表示创建的索引类型,它们分别表示唯一索引、全文索引、空间索引三种不同的索引类型。如果我们不指定任何关键字,则默认为普通索引。
index_name
index_name表示索引的名称,由用户自行定义,以便于以后对该索引进行修改等管理操作。
index_type
index_type表示索引的具体实现方式,在MySQL中,有两种不同形式的索引——BTREE索引和HASH索引。在存储引擎为MyISAM和InnoDB的表中只能使用BTREE,其默认值就是BTREE;在存储引擎为MEMORY或者HEAP的表中可以使用HASH和BTREE两种类型的索引,其默认值为HASH。
index_col_name
index_col_name表示需要创建索引的字段名称,我们还可以针对多个字段创建复合索引,只需要在多个字段名称之间以英文逗号隔开即可。
此外,对于CHAR或VARCHAR类型的字段,我们还可以只使用字段内容前面的一部分来创建索引,只需要在对应的字段名称后面加上形如(length)的指令即可,表示只需要使用字段内容前面的length个字符来创建索引。在这里,我们以User表的username字段(类型为VARCHAR(50))为例,使用username字段的6个字符前缀来创建索引。

?


1

CREATE INDEX idx_user_username ON user (username(6));

由于多数字段的前6个字符通常不同,所以此索引不会比使用字段的全部内容创建的索引速度慢很多。另外,使用字段的一部分创建索引可以使索引文件大大减小,从而节省了大量的磁盘空间,有可能提高INSERT操作的速度。

在MySQL中,前缀长度最大值为255字节。对于存储引擎为MyISAM或InnoDB的数据表,前缀最长为1000字节。

必须注意的是,在MySQL中,对于TEXT和BLOB这种大数据类型的字段,必须给出前缀长度(length)才能成功创建索引。

备注1:上述创建索引的语法还具有以下变体:

?


1

2

ALTER TABLE table_name

ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name (index_col_name,...) [USING index_type]

备注2:在MySQL中,只有当数据表的存储引擎为MyISAM, InnoDB或BDB类型时,你才能向具有NULL值的列或者数据类型为TEXT或BLOB的列添加索引。

删除索引

在MySQL中删除索引的方法非常简单,其完整语法如下:

?


1

2

3

--删除指定表中指定名称的索引

ALTER TABLE table_name

DROP INDEX index_name;

在这里,我们编写SQL语句将上面创建索引的例子中的索引idx_user_username删除掉,代码详情如下:

?


1

2

3

--删除名称为idx_user_username的索引

ALTER TABLE user

DROP INDEX idx_user_username;

修改索引

在MySQL中并没有提供修改索引的直接指令,一般情况下,我们需要先删除掉原索引,再根据需要创建一个同名的索引,从而变相地实现修改索引操作。

?


1

2

3

4

5

--先删除

ALTER TABLE user

DROP INDEX idx_user_username;

--再以修改后的内容创建同名索引

CREATE INDEX idx_user_username ON user (username(8));

查看索引

在MySQL中,要查看某个数据库表中的索引也非常简单,只需要使用以下两个命令中的任意一种即可。

?


1

2

3

4

--如果查看索引前,没有使用user db_name等命令指定具体的数据库,则必须加上FROM db_name

SHOW INDEX FROM table_name [FROM db_name]

--如果查看索引前,没有使用user db_name等命令指定具体的数据库,则必须加上db_name.前缀

SHOW INDEX FROM [db_name.]table_name

时间: 2024-08-25 07:27:42

Mysql中索引的 创建,查看,删除,修改的相关文章

MySQL索引的创建、删除和查看

MySQL索引的创建.删除和查看 此文转自http://blogold.chinaunix.net/u3/93470/showart_2001536.html 1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍. 例如,有3个未索引的表t1.t2.t3,分别只包含列c1.c2.c3,每个表分别含有1000行数据组成,指为1-1000的数值,查找对应值相等行的查

mysql命令行下创建和删除索引简介

mysql命令行下创建和删除索引简介: mysql中创建索引可以使用CREATE TABLE语句,也可以用CREATE INDEX或ALTER TABLE来给表增加索引.索引的删除可以使用ALTER TABLE或DROP INDEX语句来实现. (1)使用ALTER TABLE语句创建索引.语法如下:alter table table_name add index index_name (column_list) ;alter table table_name add unique (colum

Jquery实现表格中的查看删除修改

首先我们在学习js的时候就有接触到表格中的一些操作,那么Jquery是一个兼容多浏览器的轻量级的javascript库,它的核心理念是写的更少,做的更多. 现在就用学到的Jquery来做一个表格中的查看删除修改感受一下Jquery的强大. 第一步:我们编写html页 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-

mysql 中索引的限制

mysql中索引的限制 在使用索引的同时,还了解MySQL中索引存在的限制,以便在索引应用中尽可能地避开限制所带来的问题.下面列出了目前mysql中与索引使用相关的限制. 1)myisam存储引擎索引键长度的总和不能超过1000字节: 2)blob和text类型的列只能创建前缀索引: 3)mysql目前不支持函数索引: 4)使用不等于(!=或者<>)的时候,msyql无法使用索引: 5)过滤字段使用了函数运算(如abs(column))后,mysql无法使用索引: 6)join语句中join条

Mysql的Root密码忘记,查看或修改的解决方法

Mysql的Root密码忘记,查看或修改的解决方法:1.首先启动命令行2.在命令行运行:taskkill /f /im mysqld-nt.exe3.继续在命令行运行:mysqld-nt --skip-grant-tables4.新开一个命令行运行:mysql -u root (如果没有配置mysql的bin环境变量的话需要切换到bin目录下执行此语句) 如果不想改密码,只是想看原来的密码的话.可以在命令行执行这个语句 select host,user,password from mysql.u

MySQL之表的创建、删除、修改、删除、查看及索引

创建数据库 create database|schema [if not exists] db_name [character set= ] [collate= ] 注:schema可以理解为方案或者数据库,与database一个意义 例创建一个students数据库,且默认字符集为'gbk'.默认排序为'gbk_chinese_ci'; create schema if not exists students character set 'gbk' collate 'gbk_chinese_c

MySQL(一)索引的创建和删除

索引是存储引擎用于快速找到记录的一种数据结构,这是索引的基本功能. 索引对于良好的性能非常关键.尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要.接下来将讲述如何创建.查看和删除索引. 索引分单列索引和组合索引.单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引.组合索引,即一个索包含多个列. 执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引. 1.ALTER TABLE ALTER TA

mysql中索引,触发器,事务,存储引擎的理解

1.索引:作用于表中的某列,并将其进行排序,有助于快速地进行查询. 索引是对数据库表中一个或多个列的值进行排序的数据结构,是用于提高在数据库表中访问数据的速度的数据库对象.其实索引相当于一本书的目录,如果没有索引,要想在数据库中查找某一特定的值就需要遍历整个数据库表,但是有了索引之后就可以在索引当中查找,有助于更快地获取信息: 索引可分为聚集索引和非聚集索引: 聚集索引:是按照数据存放的物理位置为顺序的: 非聚集索引中,表数据存储顺序与索引顺序无关:一张表上只能创建一个聚集索引,因为真实数据的物

分享知识-快乐自己:MySQL中的约束,添加约束,删除约束,以及一些其他修饰

创建数据库: CREATE DATABASES 数据库名: 选择数据库: USE 数据库名: 删除数据库: DROP DATAVBASE 数据库名: 创建表: CREATE TABLE IF NOT NULL EXISTS 表名 (字段1 数据类型 [字段属性|约束|索引|注释],.............); 字段的约束及属性 CREATE TABLE IF NOT NULL 表名(字段1 数据类型 PRIMARY KEY //单字段主键); 多字段联合主键: CREATE TABLE IF