mysql

Mysql calculate row size for all tables

SELECT col_sizes.TABLE_SCHEMA, col_sizes.TABLE_NAME, SUM(col_sizes.col_size) AS EST_MAX_ROW_SIZE
FROM (
    SELECT 
        cols.TABLE_SCHEMA, 
        cols.TABLE_NAME, 
        cols.COLUMN_NAME,
        CASE cols.DATA_TYPE
            WHEN 'tinyint' THEN 1
            WHEN 'smallint' THEN 2
            WHEN 'mediumint' THEN 3
            WHEN 'int' THEN 4
            WHEN 'bigint' THEN 8
            WHEN 'float' THEN IF(cols.NUMERIC_PRECISION > 24, 8, 4)
            WHEN 'double' THEN 8
            WHEN 'decimal' THEN ((cols.NUMERIC_PRECISION - cols.NUMERIC_SCALE) DIV 9)*4  + (cols.NUMERIC_SCALE DIV 9)*4 + CEIL(MOD(cols.NUMERIC_PRECISION - cols.NUMERIC_SCALE,9)/2) + CEIL(MOD(cols.NUMERIC_SCALE,9)/2)
            WHEN 'bit' THEN (cols.NUMERIC_PRECISION + 7) DIV 8
            WHEN 'year' THEN 1
            WHEN 'date' THEN 3
            WHEN 'time' THEN 3 + CEIL(cols.DATETIME_PRECISION /2)
            WHEN 'datetime' THEN 5 + CEIL(cols.DATETIME_PRECISION /2)
            WHEN 'timestamp' THEN 4 + CEIL(cols.DATETIME_PRECISION /2)
            WHEN 'char' THEN cols.CHARACTER_OCTET_LENGTH
            WHEN 'binary' THEN cols.CHARACTER_OCTET_LENGTH
            WHEN 'varchar' THEN IF(cols.CHARACTER_OCTET_LENGTH > 255, 2, 1) + cols.CHARACTER_OCTET_LENGTH
            WHEN 'varbinary' THEN IF(cols.CHARACTER_OCTET_LENGTH > 255, 2, 1) + cols.CHARACTER_OCTET_LENGTH
            WHEN 'tinyblob' THEN 9
            WHEN 'tinytext' THEN 9
            WHEN 'blob' THEN 10
            WHEN 'text' THEN 10
            WHEN 'mediumblob' THEN 11
            WHEN 'mediumtext' THEN 11
            WHEN 'longblob' THEN 12
            WHEN 'longtext' THEN 12
            WHEN 'enum' THEN 2
            WHEN 'set' THEN 8
            ELSE 0
        END AS col_size
    FROM INFORMATION_SCHEMA.COLUMNS cols
) AS col_sizes
where TABLE_SCHEMA not in ( 'information_schema', 'sys', 'mysql','performance_schema' )
GROUP BY col_sizes.TABLE_SCHEMA, col_sizes.TABLE_NAME
admin

Share
Published by
admin

Recent Posts

vCenter Converter Standalone 9 download

vCenter Converter Standalone 9.0.0 download (далее…)

2 месяца ago

Download Service Pack for ProLiant (SPP) 2026.03 Gen10 and 10 Plus torrent

Service pack for HPE ProLiant Gen10 and 10 Plus (ver 2026.03.00.00) (SPP2026030000.2026_0326.14.iso) Service Pack for…

3 месяца ago

Download Service Pack for ProLiant (SPP) 2026.01 Gen10 and 10 Plus torrent

Service pack for HPE ProLiant Gen10 and 10 Plus (ver 2026.01.00.00) (SPP2026010000.2026_0206.13.iso) Service Pack for…

4 месяца ago

Wireguard on Mikrotik RouterOS 7

# add wg interface /interface/wireguard/add listen-port=51820 mtu=1300 # add ip on wg interface /ip/address/add address=10.100.10.1…

6 месяцев ago

VMware remote console (VMRC) 13 download

VMware remote console (VMRC) 13.0.1 download Last version: VMware Remote Console 13.0.1 | 29 Sept…

7 месяцев ago

Download Service Pack for ProLiant (SPP) 2025.01 Gen10 torrent

Gen10 Service Pack for ProLiant (SPP) Version 2025.01 Service Pack for ProLiant 2025.01 Gen10(P81139_001_gen10spp-2025.01.00.00-SPP2025010000.2025_0119.14.iso 8.22…

1 год ago