Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / если нужно сохранить число 12 знаков / 15 сообщений из 15, страница 1 из 1
28.01.2015, 00:35:45
    #38864932
tip78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
если нужно сохранить число 12 знаков
в INT влезает 10, и то там макс 4294967295, т.е. 5000000000 уже не влезет
INT занимает 4 байта, а следующий за ним BIGINT - 8
в него влезает 20 знаков
но это перебор
мне бы на 5 байт чё-то придумать )
варианты:
разбить число на INT и SMALLINT, тогда займёт 6 байт, но 2 колонки
DECIMAL не годится, там по 1 байту на цифру (
какие ещё варианты?

есть ли шанс, что BIGINT займёт именно столько, сколько в него поместить? как вообще узнать реальный размер данных в ячейке в байтах?
...
Рейтинг: 0 / 0
28.01.2015, 04:58:13
    #38864985
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
если нужно сохранить число 12 знаков
tip78мне бы на 5 байт чё-то придумать )
варианты:
разбить число на INT и SMALLINT, тогда займёт 6 байт, но 2 колонкиУ вас такие огромные объёмы данных, что вы надеетесь получить на них существенный прирост производительности от сэкономленных 3 байт/запись? берите бигинт и не морочьте голову.
...
Рейтинг: 0 / 0
28.01.2015, 09:44:43
    #38865087
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
если нужно сохранить число 12 знаков
tip78как вообще узнать реальный размер данных в ячейке в байтах? Data Type Storage Requirements

tanglirберите бигинт и не морочьте голову.+1
...
Рейтинг: 0 / 0
28.01.2015, 09:45:57
    #38865088
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
если нужно сохранить число 12 знаков
tip78,

Уж не телефонный ли номер хранить собираетесь?
...
Рейтинг: 0 / 0
28.01.2015, 11:01:27
    #38865216
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
если нужно сохранить число 12 знаков
tip78в INT влезает 10, и то там макс 4294967295, т.е. 5000000000 уже не влезет
INT занимает 4 байта, а следующий за ним BIGINT - 8
в него влезает 20 знаков
но это перебор
мне бы на 5 байт чё-то придумать )
варианты:
разбить число на INT и SMALLINT, тогда займёт 6 байт, но 2 колонки
DECIMAL не годится, там по 1 байту на цифру (
какие ещё варианты?

есть ли шанс, что BIGINT займёт именно столько, сколько в него поместить? как вообще узнать реальный размер данных в ячейке в байтах?

на 5 байт??? да как два пальца обоссать

binary(5)

число в базу записывать представив в 6 виде не запись строковую числа, а само число, с определёным порядком байт(php pack()) и потом срезать лишние биты.

при чтении, брать 5 байт бинари, дорисовывать 24 нулевых бита(3 байта с нулями) и unpack() для получения обратно целого числа.

норм подход. пхп 5.6 установишь, ибо только там есть поддержка 64 битных чисел целых для упаковки.

хотя лекго можно и 64 битное число паковать как два 32 битных.

и распаковка соответсвенно.

дерзай. запостишь потом рабочий код....поди подобного кода сдешний пхп форум не часто видит.
...
Рейтинг: 0 / 0
28.01.2015, 13:29:54
    #38865453
tip78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
если нужно сохранить число 12 знаков
miksofttip78,

Уж не телефонный ли номер хранить собираетесь?

кошелёк wm
...
Рейтинг: 0 / 0
28.01.2015, 13:33:15
    #38865454
tip78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
если нужно сохранить число 12 знаков
miksofttip78как вообще узнать реальный размер данных в ячейке в байтах? Data Type Storage Requirements

вообще я надеялся на какую-то команду, типа length, которая покажет, сколько запись реально сожрала памяти

оказывается DECIMAL байтами хранил ДО 5.0.3, а теперь битами хранит, по 1 байту на 2 цифры (слева)
так что, как вариант... там 65 цифр
...
Рейтинг: 0 / 0
29.01.2015, 05:13:22
    #38866145
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
если нужно сохранить число 12 знаков
tip78вообще я надеялся на какую-то команду, типа length, которая покажет, сколько запись реально сожрала памятисколько написано, столько и сжирает
это не варчар с переменной длиной
...
Рейтинг: 0 / 0
29.01.2015, 10:58:31
    #38866373
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
если нужно сохранить число 12 знаков
tip78miksoftпропущено...
Data Type Storage Requirements

вообще я надеялся на какую-то команду, типа length, которая покажет, сколько запись реально сожрала памяти

оказывается DECIMAL байтами хранил ДО 5.0.3, а теперь битами хранит, по 1 байту на 2 цифры (слева)
так что, как вариант... там 65 цифр

не соглашайся на компромисы, решил экономить - иди до конца!!! binary(5) зачем тебе decimal(12) лишний байт забирать, его лучше выделить под первую букву в номере кошелька.
...
Рейтинг: 0 / 0
29.01.2015, 12:00:57
    #38866454
bochkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
если нужно сохранить число 12 знаков
int вроде был размером 11, unsigned int будет размером 12
...
Рейтинг: 0 / 0
29.01.2015, 12:06:37
    #38866460
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
если нужно сохранить число 12 знаков
bochkovint вроде был размером 11, unsigned int будет размером 12И там, и там реально влезает чуть более 9 разрядов.
Размер, указываемый в CREATE TABLE никакого отношения к диапазону хранимых значений не имеет.
...
Рейтинг: 0 / 0
29.01.2015, 12:06:59
    #38866462
bochkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
если нужно сохранить число 12 знаков
bochkovint вроде был размером 11, unsigned int будет размером 12
не гоню
...
Рейтинг: 0 / 0
29.01.2015, 12:44:22
    #38866544
tip78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
если нужно сохранить число 12 знаков
tanglirtip78вообще я надеялся на какую-то команду, типа length, которая покажет, сколько запись реально сожрала памятисколько написано, столько и сжирает
это не варчар с переменной длиной

ну тот же DECIMAL глянуть
...
Рейтинг: 0 / 0
29.01.2015, 16:57:14
    #38866957
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
если нужно сохранить число 12 знаков
bochkovint вроде был размером 11, unsigned int будет размером 12

12 знаков, но каких??? 9...9 - и так 12 цифр влезет?

256^4-1=4 294 967 296-1 ...32битное целое максимальное без знака

64битное - 8 байт, уже таки да... там под 20 знаков.
...
Рейтинг: 0 / 0
30.01.2015, 16:38:06
    #38867983
bochkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
если нужно сохранить число 12 знаков
alex564657498765453bochkovint вроде был размером 11, unsigned int будет размером 12

12 знаков, но каких??? 9...9 - и так 12 цифр влезет?

256^4-1=4 294 967 296-1 ...32битное целое максимальное без знака

64битное - 8 байт, уже таки да... там под 20 знаков.
протупил я
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / если нужно сохранить число 12 знаков / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]