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-02 23:26:04

mysql索引创建修改删除的相关文章

mysql中创建修改删除数据表例子

在PHP中应用数据库时,通常是先在MySQL客户机的控制台中,使用DDL语句创建网站中的数据库.数据表及修改表结构等操作以后,再在PHP脚本中应用.很少直接在PHP中执行DDL语句动态创建数据库.数据表或修改表的操作,通常也只有在制作安装版本的网站时才会这么做. 1.创建表(CREATE TABLE) 数据库创建以后,使用use命令选定这个新创建的数据库作为默认(当前)数据库使用,就可以继续建立其包含的数据表.数据表的创建是使用表的前提,创建数据表主要是定义数据表的结构,包括数据表的名称.字段名

mysql 索引创建与删除代码

创建索引利用create index create [unique|fulltext|spatial] index index_name    [using index_type]    on tbl_name (index_col_name,...) index_col_name:    col_name [(length)] [asc | desc] 删除索引利用drop index drop index 索引名 好了下面我们先来看一款创建索引的简单实例 create index part_

MySQL索引创建 删除 增加 修改命令

简单的唯一索引: 可以创建一个唯一索引的表.唯一的索引意味着两个行不能拥有相同的索引值.这里是语法来创建索引的表  代码如下 复制代码 CREATE UNIQUE INDEX index_name ON table_name ( column1, column2,...); 可以使用一个或多个列上创建索引.例如,我们可以创建一个索引的使用在表tutorials_tbl的tutorial_author列上  代码如下 复制代码 CREATE UNIQUE INDEX AUTHOR_INDEX ON

mysql 数据库创建与删除实例

create database语法 create database 数据库教程名 用于创建数据库,并进行命名.如果要使用create database,您需要获得数据库create权限. alter table语法 alter [ignore] table tbl_name alter table用于更改原有表的结构.例如,您可以增加或删减列,创建或取消索引,更改原有列的类型,或重新命名列或表.您还可以更改表的评注和表的类型. 允许进行的变更中,许多子句的语法与create table中的子句的

asp.net C#对xml文档创建 修改 删除 查找

1.创建 XML 导入命名空间:  代码如下 复制代码 using System.Xml; //创建 XML 对象 XmlDocument  xmlDocument = new XmlDocument(); // 声明 XML  XmlDeclaration xmlDeclare =xmlDocument.CreateXmlDeclaration("1.0","utf-8",null); //创建根节点 XmlElement elementRoot =xmlDocu

mysql 如何创建索引?mysql创建索引

mysql索引作用 在索引列上,除了有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍. mysql索引创建规则: 1.表的主键.外键必须有索引: 2.数据量超过300的表应该有索引: 3.经常与其他表进行连接的表,在连接字段上应该建立索引 4.经常出现在Where子句中的字段,特别是大表的字段,应该建立索引: 5.索引应该建在选择性高的字段上: 6.索引应该建在小字段上,对于大的文本字段甚至超长字

添加mysql索引的3条原则

一,索引的重要性 索引用于快速找出在某个列中有一特定值的行.不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行.表越大,花费的时间越多.如果表中查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要看所有数据.注意如果你需要访问大部分行,顺序读取要快得多,因为此时我们避免磁盘搜索. 假如你用新华字典来查找"张"这个汉字,不使用目录的话,你可能要从新华字典的第一页找到最后一页,可能要花二个小时.字典越厚呢,你花的时间就越多.现在你使用目录来

MySQL 创建索引、修改索引、删除索引的命令语句

mysql创建索引.修改索引.删除索引的命令语句 查看表中已经存在 index: show index from table_name; 创建和删除索引:索引的创建可以在 CREATE TABLE 语句中进行,也可以单独用 CREATE INDEX 或 ALTER TABLE 来给表增加索引.删除索引可以利用ALTER TABLE 或 DROP INDEX 语句来实现. PS: MySQL创建索引原则 http://blog.csdn.net/csdnones/article/details/5

MYSQL创建、删除、索引和更改表

   3.4 创建.删除.索引和更改表    可利用CREATE TABLE.DROP TABLE 和ALTER TABLE 语句创建表,然后,对它们进行删除,更改它们的结构.对于它们中的每一条语句,存在MySQL专有的扩充,这些扩充使各语句更为有用.CREATE INDEX 和DROP INDEX 语句使您能够增加或删除现有表上的索引.    3.4.1CREATE TABLE 语句    用CREATE TABLE 语句创建表.此语句的完整语法是相当复杂的,因为存在那么多的可选子句,但在实际