LINUX.ORG.RU

Насколько я понимаю numeric, как и decimal хранят данные в строке, т.е. для хранения числа 1234567 используется 8 байт в которых записана строка '1234567'. Память сильно расходуется, да и вычисления наверно не очень быстрые получаются.

Вразумите меня если не прав :)

Reinventer
() автор топика

про память - на диске места мало? Про быстроту вычислений - каждый раз при обращении через libpq данные все равно возвращаются в тексте и их приходится конвертить. Не знаю как насчет реализаций в SQL SUM и т.п. - но скорее всего такая же фигня.

PETER ★★
()

А int4 чем не устроил (если в int2 не влезает), но можно и int8 - этого уж точно должно хватить, иначе и правда только numeric поможет - но это что ж за числа?

gennik
()

Или наличие знака здесь является определяющим критерием? Но в int4 все равно памяти меньше пойдет - а по скорости - это смотря через какой интерфейс к базе обращаться, SQL здесь явно выиграет по скорости.

gennik
()

Вообще я сглупил, чего-то меня проглючило, что из 4 байт int4 при использовании только неотрицательных чисел будет _неиспользовано_ 2 байта, на самом деле неиспользуется только 1 бит. Извиняюсь, бес попутал, вопрос решен :)

Reinventer
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.