怎么在数据库中删除已经添加的某个索引

怎么在数据库中删除已经添加的某个索引,第1张

删除索引可以使用ALTER TABLE或DROP 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

注:其中,前两条语句是等价的,删除掉table_name中的索引index_name。

扩展资料:

索引的使用及注意事项 

EXPLAIN可以帮助开发人员分析SQL问题,explain显示了mysql如何使用索引来处理select语句以及连接表,可以帮助选择更好的索引和写出更优化的查询语句。

使用方法,在select语句前加上Explain就可以了:Explain select * from user where id=1

尽量避免这些不走索引的sql:

SELECT `sname` FROM `stu` WHERE `age`+10=30-- 不会使用索引,因为所有索引列参与了计算

SELECT `sname` FROM `stu` WHERE LEFT(`date`,4) <1990-- 不会使用索引,因为使用了函数运算,原理与上面相同

SELECT * FROM `houdunwang` WHERE `uname` LIKE'后盾%' 走索引

SELECT * FROM `houdunwang` WHERE `uname` LIKE "%后盾%" 不走索引

正则表达式不使用索引,这应该很好理解,所以为什么在SQL中很难看到regexp关键字的原因。

字符串与数字比较不使用索引

CREATE TABLE `a` (`a` char(10))

EXPLAIN SELECT * FROM `a` WHERE `a`="1" 走索引

EXPLAIN SELECT * FROM `a` WHERE `a`=1 不走索引

只能一个个删除:

alter

table

表名

drop

index

索引名

所以不想每次只删除一个所以然后再重建一次索引,我想一次性删除那些多余的索引,这样索引只需要重建一次

----------------------

你这话有问题.说明你对其机制理解有误.

mysql下不同存储引擎索引的组织方式有点不同的

如果你是myisam,可以一个个直接删除

如果你是innodb的,则应先删除非主键索引,到最后才删除主键索引

建立降序索引语法:

create index 索引名 on 表名(字段名 desc)

注:desc换成asc则是升序索引。

删除索引语法:

drop index 索引名

扩展资料:

索引的使用及注意事项 

尽量避免这些不走索引的sql:

1、SELECT `sname` FROM `stu` WHERE `age`+10=30不会使用索引,因为所有索引列参与了计算。

2、SELECT `sname` FROM `stu` WHERE LEFT(`date`,4) <1990不会使用索引,因为使用了函数运算,原理与上面相同。

3、SELECT * FROM `houdunwang` WHERE `uname` LIKE'后盾%' 走索引。

4、SELECT * FROM `houdunwang` WHERE `uname` LIKE "%后盾%"不走索引。

5、字符串与数字比较不使用索引

CREATE TABLE `a` (`a` char(10))

EXPLAIN SELECT * FROM `a` WHERE `a`="1"走索引。

EXPLAIN SELECT * FROM `a` WHERE `a`=1 不走索引

参考资料来源:索引-百度百科


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10075342.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存