在 MySQL
的旧版本中可以选择分析现有表格:
SELECT * FROM `table_name` PROCEDURE ANALYSE()
这似乎很有用,开发人员可以分析现有表,查看建议(例如使用 smallint 而不是 int)并考虑其中的一些。
在 MySQL 8.0 中
PROCEDURE ANALYSE()
去掉了。我发现的原因:"Reasoning: it was discussed many times that the PROCEDURE ANALYZE syntax is an anachronism and almost unused non-standard syntax extension".
这是唯一的原因还是自动分析表格是一种不好的做法(即使只是作为分析的附加工具)?
我也找不到
"Procedure Analyse"
的任何类似物在 PostgreSQL 中。我知道我可以分析查询,但我认为分析表结构以在新表的架构中考虑它是有用的。
最佳答案
此功能已消失,文档中没有提供或引用我能找到的明确的继任者。我试图给负责这件事的人发电子邮件,他不再在 MySQL 工作,而且他的个人电子邮件已经死了,所以他的工作可能被缩短了。很遗憾,他们删除了用户依赖的 PROCEDURE ANALYZE,而没有提供他们谈到的替代存储过程。
可以使用以下语句手动分析表:
select MAX(LENGTH(address1)) from places;
select address1 from places where length(address1) > 99;
关于mysql - MySQL 8 和 PostgreSQL 中的 "PROCEDURE ANALYSE"类似物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53611959/