mysql查看,创建和删除索引的方法是什么,mysql中删除索引

mysql查看,创建和删除索引的方法是什么,mysql中删除索引,MySQL查看、创建和删除索引的方法

本文主要介绍了在MySQL中查看、创建和删除索引的方法,并结合实例详细分析了索引在MySQL中的作用,以及查看、创建和删除索引的相关实现技巧,具有一定的参考价值,有需要的朋友可以参考一下。

本文阐述了MySQL查看、创建和删除索引的方法。分享给你,供你参考。如下所示:

1索引作用

在索引栏上,除了上面提到的有序搜索,数据库还可以通过使用各种快速定位技术,大大提高查询效率。尤其是当数据量非常大,查询涉及多个表时,索引的使用往往可以使查询速度提高上千倍。

例如,有三个未索引的表t1、t2和t3,它们分别只包含列c1、c2和c3。每个表包含1000行数据,分别引用1 ~ 1000的值。用于查找具有相同对应值的行的查询如下所示。

从t1,t2,t3中选择c1,c2,c3,其中c1=c2,c1=c3

查询结果应该是1000行,每行包含3个相等的值。要在没有索引的情况下处理该查询,必须找到三个表的所有组合,以便获得与WHERE子句匹配的那些行。虽然可能的组合数量是100010001000(十亿),但显然查询会非常慢。

如果每个表都有索引,查询过程可以大大加快。使用索引的查询处理如下。

(1)从表t1中选择第一行,以查看该行中包含的数据。

(2)使用表t2上的索引直接定位t2中与t1的值匹配的行。类似地,表t3上的索引用于直接定位t3中与t1中的值匹配的行。

(3)扫描表t1的下一行,并重复前面的过程,直到t1中的所有行都被遍历。

在这种情况下,仍然执行对表t1的完整扫描,但是对表t2和t3的索引查找可以直接获取这些表中的行,这比不使用索引时快一百万倍。

利用索引,MySQL加快了子句满足条件的行的查找,而在多表连接查询中,执行连接时加快了与其他表中行的匹配。

2. 创建索引

可以在执行CREATE TABLE语句时创建索引,也可以单独使用CREATE INDEX或ALTER TABLE向表中添加索引。

1.更改表格

ALTER TABLE用于创建普通索引、唯一索引或主键索引。

ALTER TABLE TABLE _ name ADD INDEX INDEX _ name(column _ list)

ALTER TABLE TABLE _ name ADD UNIQUE(column _ list)

ALTER TABLE table_name添加主键(column_list)

其中,table_name是要索引的表的名称,column_list指示要索引的列。当有多列时,各列用逗号分隔。名称index_name是可选的。默认情况下,MySQL会根据第一个索引列分配一个名称。此外,ALTER TABLE允许您在一条语句中更改多个表,因此您可以同时创建多个索引。

2.创建索引

CREATE INDEX可以向表中添加公共索引或唯一索引。

对table_name (column_list)创建索引index_name

在table_name (column_list)上创建唯一索引index_name

Table_name、index_name和column_list与ALTER TABLE语句中的含义相同,并且索引名称不是可选的。此外,不能用CREATE INDEX语句创建主键索引。

3索引类型

创建索引时,可以指定索引是否可以包含重复值。否则,应该将索引创建为主键或唯一索引。对于单列唯一索引,这保证了单列不包含重复值。对于多列唯一索引,保证多个值的组合不重复。

主键索引与唯一索引非常相似。实际上,主键索引只是一个名为PRIMARY的唯一索引。这意味着这个表只能包含一个主键,因为在一个表中不可能有两个同名的索引。

以下SQL语句将主键索引添加到sid上的students表中。

复制代码如下:alter table students添加主键(SID)

4. 删除索引

可以使用ALTER TABLE或DROP INDEX语句删除索引。与CREATE INDEX语句类似,DROP INDEX可以被视为ALTER TABLE内部的语句,语法如下。

删除表名中的索引index_name

ALTER TABLE table_name删除索引index_name

ALTER TABLE table_name删除主键

前两个语句是等效的,table_name中的索引index_name被删除。

第三个语句只在删除主键索引时使用,因为一个表只能有一个主键索引,所以不需要指定索引名。如果没有创建主键索引,但是表有一个或多个唯一索引,MySQL将删除第一个唯一索引。

如果从表中删除一列,索引将受到影响。对于包含多列的索引,如果删除其中一列,该列也将从索引中删除。如果删除构成索引的所有列,整个索引将被删除。

5查看索引

mysql显示tblname的索引;

mysql显示tblname中的键;

桌子

表的名称。

非唯一

如果索引不能包含重复的单词,则为0。如果是,就是1。

Key_name

索引的名称。

序列索引

索引中列的序列号,从1开始。

列名

列名。

校对

列在索引中的存储方式。在MySQL中,有一个值‘a’(升序)或NULL(无分类)。

基数

对索引中唯一值数量的估计。您可以通过运行ANALYZE TABLE或myisamchk -a来更新它.基数是根据存储为整数的统计数据来计算的,所以即使对于小表,这个值也不一定准确。基数越大,MySQL在执行union时使用索引的机会就越大。

子零件

如果列只是部分索引,则为索引字符数。如果整个列都有索引,则为NULL。

包装

指示如何压缩关键字。如果没有压缩,则为空。

如果该列包含NULL,则它包含YES。如果不是,则该列包含“否”

索引类型

使用的索引方法(BTREE、FULLTEXT、HASH、RTREE)。

评论

补充:针对SQL语句的查看与处理,本站还提供了SQL语句在线格式化美化工具供大家参考使用:

SQL代码在线格式化美化工具

:http://tools.jb51.net/code/sqlcodeformat

希望这篇文章对大家的MySQL数据库编程有所帮助。

mysql查看,创建和删除索引的方法是什么,mysql中删除索引