我有一个很长的MySQL存储过程,它主要指向一个大表。我想知道是否有一种方法可以分析这个存储过程,以了解这个大表中某列(字段名)的使用频率。原因是我想剥离任何没有在我的过程/脚本中使用的列,以减少空间使用。
例如,在mySQL程序中: Select columnA,columnB from tableA;Select columnA,columnD from tableA;
在我的大tableA中,所有可用列都是: columnA、columnB、columnC、columnD、columnE。
我想知道的列用法(至少在我的过程中提到的话):columnA -2 columnB -1 columnC -0 columnD -1 columnE -0
提前感谢您的帮助。
发布于 2020-04-16 08:45:42
将过程代码保存到文本文件。如果它像你说的那样长,那么它可能已经在一个文本文件中了,因为我认为它应该处于源代码控制之下。
打开一个bash shell。
使用计算出现次数的grep -c逐个搜索每个列名。
$ grep -c "columnA" myprocedure.sql
2
$ grep -c "columnB" myprocedure.sql
1
$ grep -c "columnC" myprocedure.sql
0
$ grep -c "columnD" myprocedure.sql
1
$ grep -c "columnE" myprocedure.sql
0软件开发中的一些任务是你只会做一次的事情,所以最好使用你能使用的最简单的命令来完成它们,即使这会使任务有点重复。
如果你不得不经常这样做,你可以想出更多的自动化,但不要投入时间,除非它是必须做的很多的事情。
https://stackoverflow.com/questions/61240840
复制相似问题