Перейти к содержимому


Какие есть ограничения в размере таблицы и в размере ячейки


Сообщений в теме: 10

#1 smart

    Активный участник

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 30 Июль 2014 - 12:42

создал таблицу. примерно 70 столбцов. загрузил туда 1500 строк с текстом.

и вот такая ошибка вылезла

"Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs"

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 30 Июль 2014 - 13:02

Очевидно, напоролись на какое-то ограничение MySQL. Судя по тексту, объем какой-то строки по всем полям превысил максимально допустимый.

#3 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 31 Июль 2014 - 05:01

Просмотр сообщенияCbCoder (30 Июль 2014 - 13:02) писал:

Очевидно, напоролись на какое-то ограничение MySQL. Судя по тексту, объем какой-то строки по всем полям превысил максимально допустимый.
А конкретно вот http://dev.mysql.com...ount-limit.html

#4 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 357 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 01 Август 2014 - 13:05

Просмотр сообщенияCbCoder (30 Июль 2014 - 13:02) писал:

Очевидно, напоролись на какое-то ограничение MySQL. Судя по тексту, объем какой-то строки по всем полям превысил максимально допустимый.

Просмотр сообщенияwondertalik (31 Июль 2014 - 05:01) писал:

А конкретно вот http://dev.mysql.com...ount-limit.html
Я писал про это. Обращался в техподдержку и т.д. Добавил предложение в доработку. Причем предупреждал, что я первый, но будут еще последователи... Но решения по вопросу пока нет.

Просмотр сообщенияsmart (30 Июль 2014 - 12:42) писал:

создал таблицу. примерно 70 столбцов. загрузил туда 1500 строк с текстом.

и вот такая ошибка вылезла

"Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs"
А у Вас теперь будет постоянная проблема с заливкой бекапов. Мне приходится ручками править его и вписывать row_format = 'dynamic' во все строки, где создаются таблицы.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#5 smart

    Активный участник

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 01 Август 2014 - 19:10

А как решить эту проблему? Не ручками?

#6 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 357 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 04 Август 2014 - 11:28

Просмотр сообщенияsmart (01 Август 2014 - 19:10) писал:

А как решить эту проблему? Не ручками?
Бекап формируется движком и явно формат таблиц он не задает. В настройках mysql я не нашел переменную отвечающую за значения row_format по умолчанию. Поэтому правлю ручками. Если найдете вариант - пишите.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#7 smart

    Активный участник

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 26 Август 2014 - 20:18

а как то можно эти ограничения убрать?

и еще - эта ошибка возникает из-за того, что в какой то ячейке внутри слишком большой текст? или потому что слишком много ячеек?
есть ли например шанс загрузить 50 000 строк с 30 столбцами, где внутри будет текст?

#8 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 357 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 01 Сентябрь 2014 - 20:19

Просмотр сообщенияsmart (26 Август 2014 - 20:18) писал:

а как то можно эти ограничения убрать?
Ограничение относится к mysql, поэтому убрать его нельзя. Есть вариант использовать динамический формат данных - писал выше.

Просмотр сообщенияsmart (26 Август 2014 - 20:18) писал:

и еще - эта ошибка возникает из-за того, что в какой то ячейке внутри слишком большой текст? или потому что слишком много ячеек?
Текст в поле превышает допустимый размер.
Я писал на почту директору КБ по вопросу данной доработки - ответа нет.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#9 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 03 Сентябрь 2014 - 00:05

Тоже столкнулся с такой проблемой. Решал на живой базе через alter table. Заметочку на форуме оставлю. Как можно решить в виде ссылки. Так же стоит отметить что изменения согласно документации через set global возможно начиная с 5.5 мускула.

А вообще хорошим решением на саас было бы включение baracuda, так как создание новых таблиц с типом antelope решение опциональное.

Сообщение отредактировал wondertalik: 03 Сентябрь 2014 - 00:06


#10 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 24 Октябрь 2014 - 12:15

Просмотр сообщенияandibrag (01 Август 2014 - 13:05) писал:

Мне приходится ручками править его и вписывать row_format = 'dynamic' во все строки, где создаются таблицы

Просмотр сообщенияandibrag (04 Август 2014 - 11:28) писал:

В настройках mysql я не нашел переменную отвечающую за значения row_format по умолчанию

Читал документацию MySQL по другому вопросу и случайно наткнулся на то, что динамический формат актуален только для таблиц с типом MyISAM. При этом, в самой Клиентской базе уже довольно давно по умолчанию используется формат InnoDB. Т.е. данный вопрос по сути актуален только для "старых" клиентов, у которых сохраняется предыдущий тип БД. Вы не пробовали вместо прописывания "row_format=dynamic" поменять тип таблиц? Может и проблема пропадет?

#11 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 25 Октябрь 2014 - 14:33

Просмотр сообщенияCbCoder (24 Октябрь 2014 - 12:15) писал:

Читал документацию MySQL по другому вопросу и случайно наткнулся на то, что динамический формат актуален только для таблиц с типом MyISAM. При этом, в самой Клиентской базе уже довольно давно по умолчанию используется формат InnoDB. Т.е. данный вопрос по сути актуален только для "старых" клиентов, у которых сохраняется предыдущий тип БД. Вы не пробовали вместо прописывания "row_format=dynamic" поменять тип таблиц? Может и проблема пропадет?
Не совсем так, эта проблема актуальна и для иннодб. Так как тип файла по умолчанию Antelope, а нужен Barracuda. Подробности выше в посте с линком





Количество пользователей, читающих эту тему: 3

0 пользователей, 3 гостей, 0 анонимных