|
|
|
проблемы с большой таблицей (более 10Гб)
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! В MySQL новичек, подскажите как подступиться к большой таблице. Имеется таблица Код: sql 1. 2. 3. 4. 5. 6. Поле data содержит pdf файлы от 10кб до 10мб. В таблице около 40000 записей, на Firebird база занимает 13Гб. Начинаю копировать записи с Firebird в MySQL, и где-то на 10000 получаю ошибку (скриншот прилагается). Оперативки хватает, занято 2.7 из 4гб, на системном диске тоже есть место, на диске с базой полно места, а настораживает, что ошибка возникает, когда файл таблицы вырастает до 2.3Гб. Операционка Windows 7x64, раздел NTFS. Т.е. файлы могут быть большими. Соединение локальное, MySQL 5.6. Подскажите, в чем может быть проблема? Мне кажется, что файл достиг максимального размера, хотя везде пишут, что размер ограничен (в разумных пределах) только операционкой. Если дело действительно в размере, то как лучше поступить? Разбить на несколько таблиц? Тем более, это пока на домашнем компе. А дойдет дело до хостера, и бог его знает, что у них там стоит и как настроено. Как сделать универсально, чтобы потом не столкнуться с проблемами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 09:07:48 |
|
||
|
проблемы с большой таблицей (более 10Гб)
|
|||
|---|---|---|---|
|
#18+
LordGray, Возможно, слишком длинный запрос. У mysql в настройках есть ограничение на максимальный размер строки запроса. Если я не ошибаюсь - max_allowed_packet (сверьтесь с документацией). Если он мал - увеличить. И такие базы лучше заливать не через графическую утилиту, а через mysql - там вывод информативней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 10:10:58 |
|
||
|
проблемы с большой таблицей (более 10Гб)
|
|||
|---|---|---|---|
|
#18+
chabapok, Заливаю через собственную утилиту, т.к. в Firebird данные хранятся в зашифрованном виде, а в MySQL мне надо в обычном. Вот и пришлось писать свою, чтоб расшифровывать попутно. Длина запроса точно не причем, т.к. 10000 записей вставились без проблем, и уже перекинул таблицы с 20-30 полями (соответственно запросы куда длиннее), тоже без проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 12:16:39 |
|
||
|
проблемы с большой таблицей (более 10Гб)
|
|||
|---|---|---|---|
|
#18+
LordGray, Подскажите, в чем может быть проблема? У тебя просто соединение разрывается с сервером. Надо искать, почему. Мне кажется, что файл достиг максимального размера, хотя везде пишут, что размер ограничен (в разумных пределах) только операционкой. Нет, деле не в этом. Разбить на несколько таблиц? Нет Как сделать универсально, чтобы потом не столкнуться с проблемами? Для начала тебе надо понять в чем проблема. Пока не очевидно. Надо больше диагностики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 12:25:17 |
|
||
|
проблемы с большой таблицей (более 10Гб)
|
|||
|---|---|---|---|
|
#18+
MasterZivДля начала тебе надо понять в чем проблема. Пока не очевидно. Надо больше диагностики. Где и что надо посмотреть/попробовать? Да, сообщение непосредственно говорит о разрыве соединения. А причиной указывает ошибку записи в сокет. Если бы я работал по сети, тогда понятно, но соединение локальное. Может оно и использует сетевые технологии, но обрываться ему нет причины. Перед этим перебрасывал несколько таблиц по 70-80 тысяч записей (но без BLOB полей), все прошло гладко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 12:40:35 |
|
||
|
проблемы с большой таблицей (более 10Гб)
|
|||
|---|---|---|---|
|
#18+
LordGray, внезапно, сокет - это не только по сети. "Розетка" (socket) не означает, что подключать можно только шнур. Смотрите что там в логах сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 12:48:24 |
|
||
|
проблемы с большой таблицей (более 10Гб)
|
|||
|---|---|---|---|
|
#18+
netwindСмотрите что там в логах сервера. Нашел лог ошибок. На момент "обрыва соединения", где-то в 18:00, в логе тишина, последняя запись в 13:40. Порылся в интернете на тему логов, оказывается их там целая пачка может быть. Глянул конфигурационный файл, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. судя по всему, остальные логи отключены. Что на что надо поменять, чтоб они включились? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 13:11:08 |
|
||
|
проблемы с большой таблицей (более 10Гб)
|
|||
|---|---|---|---|
|
#18+
chabapokmax_allowed_packet+1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 13:24:53 |
|
||
|
проблемы с большой таблицей (более 10Гб)
|
|||
|---|---|---|---|
|
#18+
miksoftchabapokmax_allowed_packet+1 Почитал, подумал - логично. По умолчанию max_allowed_packet=4М. Соответственно, если попадется PDF более 4М, то пакет не "пролезет". Поменял max_allowed_packet на 50М, запустил переброску данных. Уже 13500 записей перекинуло, файл таблицы 3.5Гб, полет нормальный. Закончит, отпишусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 14:05:45 |
|
||
|
проблемы с большой таблицей (более 10Гб)
|
|||
|---|---|---|---|
|
#18+
Все, получилось. Спасибо всем ответившим! Ну и до меня наконец дошло про "слишком длинный запрос". Первым, что пришло в голову, это текстовая часть, т.е. "insert into ...", а значение параметра для BLOB поля, как то ускользнуло из вида, что оно тоже прибавляется к размеру запроса. 40805 записей, 13.7 Гб файлик. Красота. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2014, 19:55:28 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=180&tid=1834922]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 307ms |

| 0 / 0 |
