在旧版本中,MySQL有一个选项可以分析现有表:
SELECT * FROM `table_name` PROCEDURE ANALYSE()
Run Code Online (Sandbox Code Playgroud)
这似乎很有用,开发人员可以分析现有表,查看建议(例如使用smallint而不是int)并考虑其中的一些。
在 MySQL 8.0 中PROCEDURE ANALYSE()被删除。我发现的原因是:
“推理:人们多次讨论过 PROCEDURE ANALYZE 语法是一种不合时宜且几乎未使用的非标准语法扩展”。
这是唯一的原因还是自动分析表格是一种不好的做法(即使只是作为分析的附加工具)?
另外我在 Postgresql 中找不到任何类似的东西"Procedure Analyse"。
我知道我可以分析查询,但我认为分析表结构以在新表的架构中考虑它是有用的。
此功能已消失,并且文档中没有提供或引用我可以找到的明确的后继功能。我试图给负责此事的人发电子邮件,他不再在 MySQL 工作,而且他的个人电子邮件也已失效,所以也许他的工作被缩短了。遗憾的是他们删除了用户所依赖的 PROCEDURE ANALYZE,而没有提供他们谈到的替代存储过程。
人们可以使用以下语句手动分析表:
select MAX(LENGTH(address1)) from places;
select address1 from places where length(address1) > 99;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1564 次 |
| 最近记录: |