-
如何删除唯一索引
- 时间:2024-11-23 18:22:15
大家好,今天Win10系统之家小编给大家分享「如何删除唯一索引」的知识,如果能碰巧解决你现在面临的问题,记得收藏本站或分享给你的好友们哟~,现在开始吧!
1.有什么好的方法删除索引
本文阐述了MySQL查看、创建和删除索引的方法。分享给你,供你参考。如下所示:
1.指数函数
在索引栏上,除了上面提到的有序搜索,数据库还可以通过使用各种快速定位技术,大大提高查询效率。尤其是当数据量非常大,查询涉及多个表时,索引的使用往往可以使查询速度提高上千倍。
例如,有三个未索引的表t1、t2和t3,它们分别只包含列c1、c2和c3。每个表包含1000行数据,分别引用1 ~ 1000的值。用于查找具有相同对应值的行的查询如下所示。
挑选
c1、c2、c3来自
t1、t2、t3,其中
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 _ NAME ADD PRIMARY KEY(column _ LIST)其中TABLE _ NAME是要编制索引的表的名称,column _ LIST指示要编制索引的列。当有多列时,各列用逗号分隔。
名称index_name是可选的。默认情况下,MySQL会根据第一个索引列分配一个名称。此外,ALTER TABLE允许您在一条语句中更改多个表,因此您可以同时创建多个索引。
2.创建索引
CREATE INDEX可以向表中添加公共索引或唯一索引。
Create index_name on Table _ name(column_list)Create unique index index _ name on Table _ name(column _ list)Table _ name、index _ name和column _ list与ALTER TABLE语句中的含义相同,并且索引名称不是可选的。此外,不能用CREATE INDEX语句创建主键索引。
3.变址类型
创建索引时,可以指定索引是否可以包含重复值。否则,应该将索引创建为主键或唯一索引。对于单列唯一索引,这保证了单列不包含重复值。对于多列唯一索引,保证多个值的组合不重复。
主键索引与唯一索引非常相似。实际上,主键索引只是一个名为PRIMARY的唯一索引。这意味着这个表只能包含一个主键,因为在一个表中不可能有两个同名的索引。
以下SQL语句将主键索引添加到sid上的students表中。
复制代码如下: alter table学生添加主键(SID)
4.删除索引
可以使用ALTER TABLE或DROP INDEX语句删除索引。与CREATE INDEX语句类似,DROP INDEX可以被视为ALTER TABLE内部的语句,语法如下。
drop index_name on talk _ name alter table table_name drop index _ name alter table _ name drop primary key,其中前两条语句等效,请删除table _ name中的索引index _ name。
第三个语句只在删除主键索引时使用,因为一个表只能有一个主键索引,所以不需要指定索引名。如果没有创建主键索引,但是表有一个或多个唯一索引,MySQL将删除第一个唯一索引。
如果从表中删除一列,索引将受到影响。对于包含多列的索引,如果删除其中一列,该列也将从索引中删除。如果删除构成索引的所有列,整个索引将被删除。
5.检查索引
关系型数据库
2.mysql数据表 唯一索引需要修改成普通索引 怎么改?
解决方案:先删除唯一索引,再在当前字段创建普通索引,参考下列说明以及SQL:
普通索引
普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHEREcolumn=)或排序条件(ORDERBYcolumn)中的数据列创建索引。只要有可能,就应该选择一个数据最整齐、最紧凑的数据列(如一个整数类型的数据列)来创建索引。
唯一索引
普通索引允许被索引的数据列包含重复的值。比如说,因为人有可能同名,所以同一个姓名在同一个“员工个人资料”数据表里可能出现两次或更多次。
如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。这么做的好处:
一是简化了MySQL对这个索引的管理工作,这个索引也因此而变得更有效率;二是MySQL会在有新记录插入数据表时,自动检查新记录的这个字段的值是否已经在某个记录的这个字段里出现过了;如果是,MySQL将拒绝插入那条新记录。也就是说,唯一索引可以保证数据记录的唯一性。事实上,在许多场合,人们创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。
删除索引
可利用ALTER TABLE或DROP INDEX语句来删除索引。类似于CREATE INDEX语句,DROP INDEX可以在ALTER TABLE内部作为一条语句处理,语法如下。
DROP INDEX index_name ON talbe_name
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE table_name DROP PRIMARY KEY
创建索引
在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引。
ALTER TABLE
ALTER TABLE用来创建普通索引、UNIQUE索引或PRIMARY KEY索引。
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)
以上就是关于「如何删除唯一索引」的全部内容,本文讲解到这里啦,希望对大家有所帮助。如果你还想了解更多这方面的信息,记得收藏关注本站~
【Win10系统之家www.ghost580.net②文章!】
相关文章
-
1.有什么好的方法删除索引本文阐述了MySQL查看、创建和删除索引的方法。分享给你,供你参考。如下所示:1.指数函数在索引栏上,除了上面提到的有序搜索,数据库还可以通过使用各种快速定位技术,大大提高查询效率。尤其是当...
-
1.win10专业版小娜怎么彻底禁用方法一:使用组策略禁用Cortana使用Windows10专业版或企业版的用户,可以使用使用组策略来完全禁用Cortana功能:1、使用Windows+R快捷键打开「运行」—执行gpedit.msc打开组策略编辑器。2、导...
-
1.Win10托盘区和右键菜单Nvidia选项的删除方法安装windows10系统之后,桌面右键菜单中有Nvidia控制面板选项,在任务栏托盘区有Nvidia设置及NvidiaGPU活动图标,但这些选项都没有什么实际的用处,我们可以删除它们。如果...
-
1.微信朋友圈里如何删除别人的评论?微信朋友圈里面的评论怎么删除在微信里面发布了一条说说,我们给别人评论了信息,别人也在微信朋友圈给我们评论了信息,这样的评论是否可以删除,应该怎么删除?最近很多好友在讨论这...