1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-36536 Add option to not collect statistics for long char/varchars

This is needed to make it easy for users to automatically ignore long
char and varchars when using  ANALYZE TABLE PERSISTENT.
These fields can cause problems as they will consume
'CHARACTERS * MAX_CHARACTER_LENGTH * 2 * number_of_rows' space on disk
during analyze, which can easily be much bigger than the analyzed table.

This commit adds a new user variable, analyze_max_length, default value 4G.
Any field that is bigger than this in bytes, will be ignored by
ANALYZE TABLE PERSISTENT unless it is specified in FOR COLUMNS().

While doing this patch, I noticed that we do not skip GEOMETRY columns from
ANALYZE TABLE, like we do with BLOB. This should be fixed when merging
to the 'main' branch. At the same time we should add a resonable default
value for analyze_max_length, probably 1024, like we have for
max_sort_length.
This commit is contained in:
Monty
2025-04-21 19:12:58 +03:00
parent 2b448e7337
commit 1b934a387c
9 changed files with 115 additions and 4 deletions

View File

@ -731,6 +731,7 @@ typedef struct system_variables
ha_rows select_limit;
ha_rows max_join_size;
ha_rows expensive_subquery_limit;
ulong analyze_max_length;
ulong auto_increment_increment, auto_increment_offset;
#ifdef WITH_WSREP
/*