|
Размер типов данных.
|
|||
---|---|---|---|
#18+
Привет. При создании поля в mySQL типа tinyint вместо поля размером в 1 байт поумолчанию создается поле размером в 4 байта. (alter table tbl_countries add country_id tinyINT) При создании INT вместо 4 байт получаем 11. (alter table tbl_countries add country_id INT) При создании таким образом : alter table tbl_countries add country_id tinyINT(1) получаю как и надо - 1 байт, но интересно, что при этом я теряю.. Удивительно зачем mySQL понадобились эти дополнительные байты. Я бьюсь за каждый лишний байт в моей таблице, а он их ... Короче, может кто обьяснить этот пародокс природы ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2003, 17:43 |
|
Размер типов данных.
|
|||
---|---|---|---|
#18+
6.2.6 Требования к памяти для различных типов столбцов А как ты просматриваешь размер поля в байтах? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2003, 17:49 |
|
Размер типов данных.
|
|||
---|---|---|---|
#18+
Именно про это я и говорю, что при создании поля в таблице : alter table tbl_countries add country_id INT Получаю country_id размером не в 4 байта, а в 11 !!! Откуда хвост в 7 байт берется ?? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2003, 18:25 |
|
Размер типов данных.
|
|||
---|---|---|---|
#18+
просматриваю с помощью MySQL-Front. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2003, 18:29 |
|
Размер типов данных.
|
|||
---|---|---|---|
#18+
Дай сюда полный перечень действий, после которого у тебя получатся 11 байт. В виде: Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2003, 09:45 |
|
Размер типов данных.
|
|||
---|---|---|---|
#18+
Вот после такого получаю: create table cool(test INT); ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2003, 16:04 |
|
Размер типов данных.
|
|||
---|---|---|---|
#18+
У меня тоже 11 получилось! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2003, 17:21 |
|
Размер типов данных.
|
|||
---|---|---|---|
#18+
Вот и я о том же ! Представляешь себе, какая разница получается в размере базы данных если есть пара таких полей и сотня другая тысяч записей ! Откуда оно берется - ума не приложу... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2003, 17:25 |
|
Размер типов данных.
|
|||
---|---|---|---|
#18+
Господа, то что вы принимаете за размер - это precision - число значащих знаков. Проверте так: create table cool (test INT(4) ); :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2003, 14:35 |
|
Размер типов данных.
|
|||
---|---|---|---|
#18+
Мдас.. действительно.. только интресно зачем такое ?? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2003, 15:18 |
|
Размер типов данных.
|
|||
---|---|---|---|
#18+
Код: plaintext
(4) - это не число значащих знаков, это кол-во байт выделенных под целое число итого получается (256*256*256*256)/2, это число от -2147483648 до 2147483648. Если требуется беззнаковое целое, то применяйте UNSIGNED: Код: plaintext
итого получается 256*256*256*256, это число от 0 до 4294967296. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2003, 10:22 |
|
Размер типов данных.
|
|||
---|---|---|---|
#18+
Ну вы блин даете. Ты хотя бы документацию на MySQL почитай, я не говорю уже про стандарт. Для нецелочисленных типов в скобках (p,s) задается p-количество значащих знаков, s-число отображаемых знаков после запятой. DECIMAL(5,2) - здесь могут быть отображены числа от -99.99 до 99.99 Для целочисленных типов, в MySQL: "Another extension is supported by MySQL for optionally specifying the display width of an integer value in parentheses following the base keyword for the type (for example, INT(4)). This optional width specification is used to left-pad the display of values whose width is less than the width specified for the column, but does not constrain the range of values that can be stored in the column, nor the number of digits that will be displayed for values whose width exceeds that specified for the column. " ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2003, 11:26 |
|
Размер типов данных.
|
|||
---|---|---|---|
#18+
Господа, да когда же вы наконец доки читать научитесь?! Ryback дело вам говорит, а вы рогом уперлись! Смотрите: Код: plaintext 1. 2. 3. 4.
Код: plaintext 1.
Код: plaintext 1. 2. 3. 4.
Итого, когда вы видите INT(11) это не означает, что он занимает 11 байт! Это лишь значит, что в него можно записать число, для отображения которого понадобится 11 символов (-2147483648 - знак + 10 цифр). Когда же вы указываете INT(4), то в него можно будет помещать лишь те числа, для отображения которых понадобится 4 символа, т.е. для знаковых от -999 до 999, для беззнаковых от 0 до 9999 вот и все! Если же вы будете пытаться поместить туда большее число, то оно будет урезаться по описанным выше правилам ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2003, 11:37 |
|
|
start [/forum/topic.php?fid=47&gotonew=1&tid=1855993]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 259ms |
total: | 383ms |
0 / 0 |