8.4.2.4 使用 PROCEDURE ANALYZE

ANALYSE([max_elements[,max_memory]])

Note

PROCEDURE ANALYSE()自 MySQL 5.7.18 起已弃用,并已在 MySQL 8.0 中删除。

ANALYSE()检查查询的结果,并返回对结果的分析,该分析建议每列的最佳数据类型,这可能有助于减小 table 的大小。要获得此分析,请将PROCEDURE ANALYSE附加到SELECT语句的末尾:

SELECT ... FROM ... WHERE ... PROCEDURE ANALYSE([max_elements,[max_memory]])

For example:

SELECT col1, col2 FROM table1 PROCEDURE ANALYSE(10, 2000);

结果显示查询返回的值的一些统计信息,并为列提出最佳数据类型。这对于检查现有 table 或导入新数据后会很有帮助。您可能需要为参数尝试不同的设置,以使PROCEDURE ANALYSE()在不合适的时候不建议ENUM数据类型。

参数是可选的,并按如下方式使用:

    • max_elements (默认值为 256)是ANALYSE()每列注意到的最大不同值数。 ANALYSE()使用它来检查最佳数据类型是否应为ENUM类型;如果有 * max_elements个以上的不同值,则ENUM不是建议的类型。
    • max_memory *(默认 8192)是ANALYSE()在尝试查找所有不同值时应为每列分配的最大内存量。

UNION语句中不允许使用PROCEDURE子句。