1、打开Navicat,右击oracle数据库,然后点击【打开连接】。
2、点击【其它】,然后点击【索引】,此时显示oracle数据库中所有的索引。
3、右击要删除的索引,然后选择【设计索引】。
4、核实索引内容,以免错删。
5、右击要删除的索引,然后选择【删除索引】。
6、最后勾选【确定】,然后点击【删除】。
7、此时该索引就删除了。
1. 应该是可行的, 具体 会不会节省时间 试一下就可以了。
2. 大概每个月存储四五十万的数据,里面只保存最新四个月的数据
每次create这7个索引用时都特别长,大概需要三四个小时;
200万的数据,重建索引花费的时间太长了;很奇怪。
3. 估计之前的 先drop掉索引,然后插入数据完毕后create索引 也是为了避免 插入数据时,索引对插入效率的影响。
删除索引可以使用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 不走索引
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)