-
хочу сохранить в поле блоб 2 мегабайта. В итоге получаю fail: MySQL server has gone away Вопрос такой: что лучше: - увеличивать max_allowed_packet - разбивать запрос на подзапросы: INSERT INTO `file` SET `name`='...', `content`='<1 часть>'; UPDATE `file` SET `content` = `content` + '<2 часть>' WHERE `id`=..; UPDATE `file` SET `content` = `content` + '<3 часть>' WHERE `id`=..; Поймет ли в данном случае сервер, что поле надо просто дописать?
Или, конечно третий вариант - хранить блобы в файлах?
-
> Или, конечно третий вариант - хранить блобы в файлах?
Четвёртый вариант - взять Postgres
-
1 мегабайт по дефаулту это очень мало... если работать как с локальной/в локальной сети базой, а не в инете.
-
> Четвёртый вариант - взять Postgres
А там чего?
> sniknik © (20.06.11 11:55) [2]
т.е. смело ставить метров 70 пакет и не париться?
-
> А там чего? а там другие настройки по умолчанию...
> т.е. смело ставить метров 70 пакет и не париться? в mssql я могу без всяких ограничений от сервера вкачать в блоб ~ 700мег (ограничения с другой стороны, по памяти в системе). к тому же это не делает фиксированный массив такого размера, это просто ограничитель на максимальное, а выделять будет столько сколько нужно... т.что смело ставь метров 500... т.е. что то близкое к тому, что "потянет" операционка. (смысл - получить "отлуп" на невозможный размер сразу, а не после того как система займет все память/ресурсы и все одно откажет, в итоге.)
-
> А там чего?
А там нет ограничения на длину одного столбца в записи. Точнее есть, 32ТБ вроде.
|