Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > MYSQL двоичные значения


Автор: maxipub 11.6.2011, 19:19
Как хранить двоичные значения в MYSQL? Переводить в другую систему счисления и записывать, или же есть какие-то специальные типы данных? (вроде - нет smile)

Автор: triclosan 12.6.2011, 08:06
http://dev.mysql.com/doc/refman/5.0/en/blob.html

Автор: maxipub 15.6.2011, 13:05
Может я что-то не так понял? Вставил 1024 бита, в инфе:

Space usage Type Usage 
Data 1,032 B 
Index 1,024 B 
Total 2,056 B 

Т.е. 1 бит приравнялся к 1 байту? Или откуда 1032 байта данных?
???

Вот таблица:

Код

--
-- Table structure for table `t3`
--

CREATE TABLE IF NOT EXISTS `t3` (
  `row` blob NOT NULL
) ENGINE=MyISAM;

--
-- Dumping data for table `t3`
--

INSERT INTO `t3` (`row`) VALUES
(0x30313031...);


данные обрезал чтоб нормально пост смотрелся
там 0101...

Автор: triclosan 15.6.2011, 13:38
Нет.

Сделайте несколько десятков записей по 1024 бита и посмотрите размер - с блобами не все так плохо. Одна запись, имхо, не показатель. Попробуйте создать файл размером один бит к примеру, он у вас кластер файловой системы займет ;), тут наверное нечто подобное

Автор: maxipub 15.6.2011, 15:35
Да там хоть 10, хоть 100, хоть сколько вставляй - выходит одно и то же. Вставил 10 раз по 64к нулей и единичек, итог:

Space usage Type Usage 
Data 640.1  KiB 
Index 1,024 B 
Total 641.1  KiB 

Полез уже смотреть файл таблицы. Действительно, 640Кб весит... smile 

Автор: triclosan 15.6.2011, 18:15
Цитата(maxipub @  15.6.2011,  15:35 Найти цитируемый пост)
64к нулей и единичек

шестнадцатеричная строка на 16000 символов, я правильно понял?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)