URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 7938
[ Назад ]

Исходное сообщение
"если нужно сохранить число 12 знаков в MySQL"

Отправлено greenwar , 27-Янв-15 21:12 
в INT влезает 10, и то там макс 4294967295, т.е. 5000000000 уже не влезет
INT занимает 4 байта, а следующий за ним BIGINT - 8
в него влезает 20 знаков
но это перебор
мне бы на 5 байт чё-то придумать )
можно разбить число на INT и SMALLINT, тогда займёт 6 байт, но 2 колонки
DECIMAL не годится, там по 1 байту на цифру (
какие ещё варианты?

Содержание

Сообщения в этом обсуждении
"если нужно сохранить число 12 знаков в MySQL"
Отправлено Уга , 28-Янв-15 07:03 
> в INT влезает 10, и то там макс 4294967295, т.е. 5000000000 уже
> не влезет
> INT занимает 4 байта, а следующий за ним BIGINT - 8
> в него влезает 20 знаков
> но это перебор
> мне бы на 5 байт чё-то придумать )
> можно разбить число на INT и SMALLINT, тогда займёт 6 байт, но
> 2 колонки
> DECIMAL не годится, там по 1 байту на цифру (
> какие ещё варианты?

в тест сохраняй


"если нужно сохранить число 12 знаков в MySQL"
Отправлено Andrey Mitrofanov , 28-Янв-15 10:01 
> INT занимает 4 байта, а следующий за ним BIGINT - 8
> в него влезает 20 знаков
> но это перебор
> мне бы на 5 байт чё-то придумать )

Мал ещё экономить с 8 до 5 байт. Бери BIGINT и не выуживайся.

//Надеюсь, старшие товарищи расскажут, сколько _сотен_ байт теряется на каждую запись.

> DECIMAL не годится, там по 1 байту на цифру (
> какие ещё варианты?

http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview...

""DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]

A packed “exact” fixed-point number.

http://www.mysql.ru/docs/mysql-man-5.0-en/data-types.html#st...

""As of MySQL 5.0.3, values for DECIMAL columns are represented using a binary format that packs nine decimal (base 10) digits into four bytes.

""Before MySQL 5.0.3, DECIMAL columns are represented as strings and storage requirements are: M+2 bytes if D > 0, M+1 bytes if D = 0, D+2 if M < D


"если нужно сохранить число 12 знаков в MySQL"
Отправлено greenwar , 28-Янв-15 13:29 
> Мал ещё экономить с 8 до 5 байт. Бери BIGINT и не выуживайся.

спасибо, без сопливых разберёмся.

> ""As of MySQL 5.0.3, values for DECIMAL columns are represented using a
> binary format that packs nine decimal (base 10) digits into four
> bytes.
> ""Before MySQL 5.0.3, DECIMAL columns are represented as strings and storage requirements
> are: M+2 bytes if D > 0, M+1 bytes if D
> = 0, D+2 if M < D

какой неожиданный поворот. вот и решение, благодарю )


"если нужно сохранить число 12 знаков в MySQL"
Отправлено PavelR , 29-Янв-15 09:02 
>> Мал ещё экономить с 8 до 5 байт. Бери BIGINT и не выуживайся.
> спасибо, без сопливых разберёмся.
>> ""As of MySQL 5.0.3, values for DECIMAL columns are represented using a
>> binary format that packs nine decimal (base 10) digits into four
>> bytes.
>> ""Before MySQL 5.0.3, DECIMAL columns are represented as strings and storage requirements
>> are: M+2 bytes if D > 0, M+1 bytes if D
>> = 0, D+2 if M < D
> какой неожиданный поворот. вот и решение, благодарю )

-