# mysql.column\_stats Table

The `mysql.column_stats` table is one of three tables storing data used for [Engine-independent table statistics](https://mariadb.com/docs/server/ha-and-performance/optimization-and-tuning/query-optimizations/statistics-for-optimizing-queries/engine-independent-table-statistics). The others are [mysql.table\_stats](https://mariadb.com/docs/server/reference/system-tables/the-mysql-database-tables/mysql-table_stats-table) and [mysql.index\_stats](https://mariadb.com/docs/server/reference/system-tables/the-mysql-database-tables/mysql-index_stats-table).

It is populated when the [ANALYZE TABLE](https://mariadb.com/docs/server/reference/sql-statements/table-statements/analyze-table) statement is run, although not by default. See [Collecting Statistics with the ANALYZE TABLE Statement](https://mariadb.com/docs/server/ha-and-performance/optimization-and-tuning/query-optimizations/statistics-for-optimizing-queries/engine-independent-table-statistics#collecting-statistics-with-the-analyze-table-statement) for details.

Note that statistics for blob and text columns are not collected. If explicitly specified, a warning is returned.

It is possible to manually update the table and, unlike most system tables, there are some scenarios where this could be useful. See [Manual updates to statistics tables](https://mariadb.com/docs/server/ha-and-performance/optimization-and-tuning/query-optimizations/statistics-for-optimizing-queries/engine-independent-table-statistics#manual-updates-to-statistics-tables) for details.

This table uses the [Aria](https://mariadb.com/docs/server/server-usage/storage-engines/aria) storage engine.

The `mysql.column_stats` table contains the following fields:

<table><thead><tr><th width="145">Field</th><th width="170">Type</th><th width="115">Null</th><th>Key</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td>db_name</td><td>varchar(64)</td><td>NO</td><td>PRI</td><td>NULL</td><td>Database the table is in.</td></tr><tr><td>table_name</td><td>varchar(64)</td><td>NO</td><td>PRI</td><td>NULL</td><td>Table name.</td></tr><tr><td>column_name</td><td>varchar(64)</td><td>NO</td><td>PRI</td><td>NULL</td><td>Name of the column.</td></tr><tr><td>min_value</td><td>varbinary(255)</td><td>YES</td><td></td><td>NULL</td><td></td></tr><tr><td>max_value</td><td>varbinary(255)</td><td>YES</td><td></td><td>NULL</td><td></td></tr><tr><td>nulls_ratio</td><td>decimal(12,4)</td><td>YES</td><td></td><td>NULL</td><td>Fraction of NULL values (0- no NULLs, 0.5 - half values are NULLs, 1 - all values are NULLs).</td></tr><tr><td>avg_length</td><td>decimal(12,4)</td><td>YES</td><td></td><td>NULL</td><td>Average length of column value, in bytes. Counted as if one ran SELECT AVG(LENGTH(col)). This doesn't count NULL bytes, assumes endspace removal for CHAR(n), etc.</td></tr><tr><td>avg_frequency</td><td>decimal(12,4)</td><td>YES</td><td></td><td>NULL</td><td>Average number of records with the same value</td></tr><tr><td>hist_size</td><td>tinyint(3) unsigned</td><td>YES</td><td></td><td>NULL</td><td>Histogram size in bytes, from 0-255, or, from <a href="https://app.gitbook.com/s/aEnK0ZXmUbJzqQrTjFyb/community-server/old-releases/10.8/what-is-mariadb-108">MariaDB 10.8</a>, number of buckets if the histogram type is JSON_HB.</td></tr><tr><td>hist_type</td><td>enum('SINGLE_PREC_HB', 'DOUBLE_PREC_HB') (from MariaDB 10.8)<br>enum('SINGLE_PREC_HB', 'DOUBLE_PREC_HB','JSON_HB') (until MariaDB 10.7)</td><td>YES</td><td></td><td>NULL</td><td>Histogram type. See the <a href="../../../../server-management/variables-and-modes/server-system-variables#histogram_type">histogram_type</a> system variable.</td></tr><tr><td>histogram</td><td><p>blob (from MariaDB 10.7)</p><p>varbinary(255) (until MariaDB 10.7)</p></td><td>YES</td><td></td><td>NULL</td><td></td></tr></tbody></table>

<sub>*This page is licensed: CC BY-SA / Gnu FDL*</sub>

{% @marketo/form formId="4316" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mariadb.com/docs/server/reference/system-tables/the-mysql-database-tables/mysql-column_stats-table.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
