Конференция "Базы" » Mysql, большой blob. как лучше? [MySQL]
 
  • Дмитрий С © (20.06.11 05:00) [0]
    хочу сохранить в поле блоб 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`=..;
    Поймет ли в данном случае сервер, что поле надо просто дописать?

    Или, конечно третий вариант - хранить блобы в файлах?
  • Ega23 © (20.06.11 10:55) [1]

    > Или, конечно третий вариант - хранить блобы в файлах?


    Четвёртый вариант - взять Postgres
  • sniknik © (20.06.11 11:55) [2]
    1 мегабайт по дефаулту это очень мало... если работать как с локальной/в локальной сети базой, а не в инете.
  • Дмитрий С © (21.06.11 06:13) [3]

    > Четвёртый вариант - взять Postgres

    А там чего?


    > sniknik ©   (20.06.11 11:55) [2]

    т.е. смело ставить метров 70 пакет и не париться?
  • sniknik © (21.06.11 07:56) [4]
    > А там чего?
    а там другие настройки по умолчанию...

    > т.е. смело ставить метров 70 пакет и не париться?
    в mssql я могу без всяких ограничений от сервера вкачать в блоб ~ 700мег (ограничения с другой стороны, по памяти в системе).
    к тому же это не делает фиксированный массив такого размера, это просто ограничитель на максимальное, а выделять будет столько сколько нужно... т.что смело ставь метров 500... т.е. что то близкое к тому, что "потянет" операционка. (смысл - получить "отлуп" на невозможный размер сразу, а не после того как система займет все память/ресурсы и все одно откажет, в итоге.)
  • Ega23 © (21.06.11 08:37) [5]

    > А там чего?


    А там нет ограничения на длину одного столбца в записи. Точнее есть, 32ТБ вроде.
 
Конференция "Базы" » Mysql, большой blob. как лучше? [MySQL]
Есть новые Нет новых   [134431   +10][b:0][p:0]