In a special mode the ANALYZE TABLE statement will collect statistics on table cardinality, table columns and table indexes. This statistics will be stored in tables table_stat, column_stat and index_stat in the mysql database.
- For any database table the table table_stat will contain the number of rows in the table.
- For any table column the table column_stat will contain the minimal and maximal values, the share of null values, the average length of a column value, and the the average frequency of the column values.
- For any index defined on a database table the table index_stat will contain number of records per every key prefix.
This task will be implemented in 3 steps:
- A pure back-port of the MySQL WL#4777 from mysql-5.4 code line will be performed.
- New possibility to collect statistics only on specified columns and/or indexes will be added.
- A new possibility to scan only a certain percentage of the table records in a pseudo-random manner will be added.
References:
- WL#248: Collect engine independent statistics on table columns and indexes to store it in persistent system tables
- WL#250: Use the statistics from persistent statistical tables instead of the statistics provided by engine