暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

少见的MySQL索引改名字需求

原创 薛晓刚 2024-01-12
146


 从来没有考虑过,索引名字对管理有影响。

 开发提交过来的DDL脚本是:

alter table  … drop index01 …..  drop  index02 …..  add  index01 …..  add index02…..的格式。

目的是对一个单列索引变更为组合索引。但是用工具导出后SQL就变成了这样。

 

由于是大表,我个人建议是拆开执行,

先执行alter table  … drop index01……

再执行另外一个alter table   drop index02 …

再执行alter table  … add   index01 ……

最后再执行一个alter table… add   index02 ……

 

这样的一个好处是分散一下步骤。万一遇到问题不至于全部回退。

 

自我感觉这个很合理。不过问题来了,开发说删除索引到增加索引这个期间,可能删除索引很快,但是增加索引较慢。而这个期间涉及到这个表的SELECT会变成全表查询。该表已经几千万数据了。写的操作很少,但是读的操作很多。

 

其实这个也好解决,可以采用先增加索引index03和04,增加索引后再删除旧索引index01和index02。但是问题又来了。

开发人员说这样生产系统的index03和04和UAT环境中的index01和02的名字不一样。

大家都知道名字不一样不影响索引使用。但是开发人员和运维人员对于规范化管理来说是不行的。日后要核对两者一致性。

 

  数据库既然支持表名重命名、列名重命名,那么索引应该也支持。但是这个操作极其少见。

 

  按照数据库DDL的语法尝试进行修改。


    完全可行。开发和运维的管理问题解决了。

   这个命令是自己不知道的,而是完全按照语法推断出来的。

最后修改时间:2024-01-12 15:33:55
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论