MySQL索引操作命令(创建索引、重建索引、查询索引、删除索引)

1、创建索引

索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引。以下命令语句分别展示了如何创建主键索引(PRIMARY KEY),联合索引(UNIQUE)和普通索引(INDEX)的方法。

mysql>ALTER TABLE `table_name` ADD INDEX `index_name` (column list);

mysql>ALTER TABLE `table_name` ADD UNIQUE `index_name` (column list);

mysql>ALTER TABLE `table_name` ADD PRIMARY KEY `index_name` (column list);

mysql>CREATE INDEX `index_name` ON `table_name` (column_list);

mysql>CREATE UNIQUE INDEX `index_name` ON `table_name` (column_list);

例如:

mysql>ALTER TABLE `article` ADD INDEX `id`;//给article表增加id索引

或者:

mysql>ALTER TABLE `article` ADD INDEX (`id`,`order_id`);给article表增加id索引,order_id索引

1、重建索引命令

 mysql> REPAIR TABLE tbl_name QUICK;

2、查询数据表索引
 mysql> SHOW INDEX FROM tbl_name;

 
3、创建索引(PRIMARY KEY,INDEX,UNIQUE)支持创建主键索引,联合索引和普通索引命令

 
  mysql>ALTER TABLE tbl_name ADD INDEX index_name (column list);
  mysql>ALTER TABLE tbl_name ADD UNIQUE index_name (column list);
  mysql>ALTER TABLE tbl_name ADD PRIMARY KEY index_name (column list);

4、删除索引(PRIMARY KEY,INDEX,UNIQUE)

支持删除主键索引,联合索引和普通索引命令

 
   mysql>ALTER TABLE tbl_name DROP INDEX index_name (column list);
   mysql>ALTER TABLE tbl_name DROP UNIQUE index_name (column list);
   mysql>ALTER TABLE tbl_name DROP PRIMARY KEY index_name (column list);

其中 tbl_name 表示数据表名,index_name 表示索引名,column list 表示字段列表

在前面的三条语句中,都删除了table_name中的索引index_name。而在最后一条语句中,只在删除PRIMARY KEY索引中使用,因为一个表只可能有一个PRIMARY KEY索引,因此也可不指定索引名。如果没有创建PRIMARY KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。如果从表中删除某列,则索引会受影响。对于多列组合的索引,如果删除其中的某列,则该列也会从索引中删除。如果删除组成索引的所有列,则整个索引将被删除。

时间: 2024-12-05 18:24:25

MySQL索引操作命令(创建索引、重建索引、查询索引、删除索引)的相关文章

MySQ索引操作命令总结(创建、重建、查询和删除索引命令详解)_Mysql

以下所列示例中中 `table_name` 表示数据表名,`index_name` 表示索引名,column list 表示字段列表(如:`id`,`order_id`). 1.创建索引 索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引.以下命令语句分别展示了如何创建主键索引(PRIMARY KEY),联合索引(UNIQUE)和普通索引(INDEX)的方法. 复制代码 代码如下: mysql>ALTER TABLE `

mysql创建索引时如何考虑order by查询

给表加索引时,其中一些查询会用到order by ,group by之类的,在低版本(有ICP之前版本)中可能会遇到一种情况,where查询用到索引,那么order by就无法用到索引,当然我们可以创建联合索引,那么什么情况下创建联合索引是有效的呢?可以通过explain 看order by是否有file sort,where是否使用到了索引. 那么order by 如何避免file sort,之后的索引应该如何创建,在这里做下总结:1.根据索引查询数据后,是否还需要排序,如果需要就会产生fil

深入分析mysql索引何时创建比较好

索引可以提高数据的检索效率,也可以降低数据库的IO成本,并且索引还可以降低数据库的排序成本.排序分组操作主要消耗的就是CPU资源和内存,所以能够在排序分组操作中好好的利用索引将会极大地降低CPU资源的消耗.本篇文章将简单的分析一下如何正确创建MySQL数据索引. 如何判定是否需要创建索引? 1.较频繁地作为查询条件的字段 这个都知道.什么是教频繁呢?分析你执行的所有SQL语句.最好将他们一个个都列出来.然后分析,发现其中有些字段在大部分的SQL语句查询时候都会用到,那么就果断为他建立索引. 2.

MySQL索引操作命令学习笔记

mysq索引类型:普通索引.唯一索引和主索引 1. 普通索引 普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度.因此,应该只为那些最经常出现在查询条件(WHERE column = -)或排序条件(ORDER BY column)中的数据列创建索引.只要有可能,就应该选择一个数据最整齐.最紧凑的数据列(如一个整数类型的数据列)来创建索引. 2. 唯一索引 普通索引允许被索引的数据列包含重复的值.比如说,因为人有可能同名,所以同一个姓名在同一个"员工个人资料&quo

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

本文实例讲述了MySQL查看.创建和删除索引的方法.分享给大家供大家参考.具体如下: 1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍. 例如,有3个未索引的表t1.t2.t3,分别只包含列c1.c2.c3,每个表分别含有1000行数据组成,指为1-1000的数值,查找对应值相等行的查询如下所示. SELECT c1,c2,c3 FROM t1,t2,t3

mysql 普通索引 唯一索引的创建与效率比较

unique(唯一索引) alter table `table_name` add unique (`column`) index(普通索引) mysql教程>alter table `table_name` add index index_name ( `column` ) fulltext(全文索引) alter table `table_name` add fulltext ( `column` )   1.普通索引 普通索引(由关键字key或index定义的索引)的唯一任务是加快对数据的

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)语法,对

solrj的使用,环境准备,工程搭建,索引创建,添加\修改索引,删除索引,查询

1      Solrj的使用 1.1     什么是solrj Solrj是访问solr服务的java程序客户端.   1.2     需求 使用solrj调用solr服务实现对索引库的增删改查操作. 1.3     环境准备 l  Solr:4.10.3 l  Jdk环境:1.7.0_72(solr4.10 不能使用jdk1.7以下) l  Ide环境:eclipse indigo 1.4     工程搭建 1.4.1   第一步:创建java工程 1.4.2   第二步:添加jar l 

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