Имя домена в поле типа BIGINT
01Апр08
Самый большой целочисленный цифровый тип данных в MySQL — BIGINT, вмещает 8 байт. Если бы это был строковый тип данных, то каждый из этих восьми байт мог бы принимать значение одного из 256 стандартных символов.
В имени домена может быть использовано 26 букв латинского алфавита, 10 цифр, точка и дефис — итого 38 символов. Каким бы особенным не было имя домена, из 256 символов таблицы ASCII используется только 38.
Значит, в один байт, вместо 1-го из возможных 256 символов, мы можем сохранить 6 из 38 символов (256/38≈6). Соответственно, в 8 байт можно поместить 53 символа (8*256/38≈53).
З.Ы. Обратите внимание на дату поста.
Filed under: Технологии | 6 Comments

2Соответственно, в 8 байт можно поместить 53 символа
Что, в принципе, очень много. Как показывает статистика, подавляющее большинство доменов имеет размер меньше 26 символов. таким образом мы можем хранить домены не только в бигинт, но и в просто инт. Представляете как можно сэкономить на месте на сервере?
2photon: между int и bigint разницы особой нет. По крайне мере, такой разницы, как между bigint и char(53).
И дело даже не в экономии места. bigint-поле можно использовать в качестве ключа таблицы, значения такого типа очень просто и быстро сравнивать. Применений масса.
Как это ты сохранишь в 1 байт 6 из 38 символов?
В 8 байт (64 бита) без проблем можно сохранить 10 символов (из 38): 8*8/6 (6 бит для хранения 1 из 38 символов).
Таки да
1-е апреля
2Alex B: ты возродил мою веру в человечество!
Хоть кто-то ещё про биты помнит и считать умеет.
Типа респект!
Так шутить не честно!
Если бы не полез читать комменты, так бы и остался в уверенности что это действительно можно. После обеда, сижу расслабленный, считать лень. Поэтому rss и читаю вместо работы.
Удачно — я до тех слов подумал что это на самом деле!