Я могу больше сказать. Если вытаскивать данные из мускула, то всегда получаешь строки. Стока, чаще всего, занимает больше места, чем число. Иногда во много раз больше. Мы когда-то делали специальную прослойку, чтобы числовые поля оставались числами, иначе память быстро заканчивалась.
Это-то как раз правильно, т.к. если бы получались числа например для DECIMAL типов, то терялась бы точность (правда я не проверял, поддерживает ли вообще DBD::mysql такие типы).
Собственно, я решил проверить обсуждаемую фишку после того, как я начал искать, как предлагает описывать числовые поля (произвольной точности) OpenAPI. Спойлер: пока никак. :)