Задавайте вопросы, мы ответим
Вы не зашли.
Ну что же, устроим День Археолога 2.
Ситуация такова.
1. Стоит сервер на Windows7 x64. Нормально стоит, работает нормально, никаких проблем. Все таблицы InnoDB.
2. Установил сервер на Windows 2003 x86, перенес все таблицы с первого сервера, сделал тип MyISAM.
Еще во время переноса обратил внимание, что таблицы больше 50 метров импортировались не совсем нормально, ненормальность заключалась в следующем - в процессе исполнения запроса load infile получал сообщение Lost connection to MySQL server during query через 30.515 секунды. При этом сам запрос импорта не грохался, а продолжался, это было видно по нагрузке процессора и в общем-то когда она падала, в базе имелась нужная таблица. Выборочные проверки данных в таблицах показали что таблицы действительно нормально втянулись.
Теперь эта беда стала развиваться, если я пишу выборки, то они с той или иной степенью быстроты исполняются, но стоит мне написать вставить за мнгновения полученную выборку в таблицу, как я получаю Lost connection to MySQL server during query. При этом при запуске конструкции типа insert ... select из под php, все валится, при запуске из под MySQL Workbench иногда запрос не падает и продолжает исполняться.
Сравнил полностью настройки серверов, за исключением разниц в переменных настраиваемых через my.ini не нашел ничего, разница в настройках связана с тем, что на первой машине стоит 8GB и она сконфигурирована на обработку 100 коннектов, а на второй только 2 и она сконфигурирована на обработку 800 коннектов. Так же на первой живет 2 аппаратных рейда 0 и 10 на первом сервер, на втором данные, на втором только аппаратный 0 и на нем и сервер и данные. И к первому и к второму серверу нагрузка исчисляется 5-10 коннекшенами примерно раз в секунду.
Таблицы на которых есть проблемы большие. Суть запроса в следующем.
Из таблицы в более чем 3 млн. записей делается попытка отобрать 10000 записей в кэш таблицу, чтобы потом их последовательно обрабатывать в течение нескольких часов. Стоят так же условия
not in по bigint таблица уже обработанных 2 млн. записей
not in по bigint кэш таблица второго обрабатывающего сервера не более 10000 записей, сейчас вообще пустая
not in по bigint кэш таблица второго обрабатывающего сервера не более 10000 записей, сейчас вообще пустая
некое like условие вида not like 'xyz%'
Если даю select запрос выстреливается меньше чем за секунду, пищу insert ... select все виснет и выбрасывает Lost connection to MySQL server during query. разницы между PHP и Workbanch никакой, за исключением что PHP почему то не ловит разрыв связи.
То что нет никаких локов таблиц - это точно, проверял.
Неактивен
max_allowed_packet в какое значение выставлен?
Неактивен
Угу, смотрите на размеры пакетов (должны быть одинаковые с точки
зрения сервера и клиента и достаточно большие, чтобы пролезали
Ваши запросы и ответы), и на размер памяти, который Вы выделяете
под MySQL — в 32битных системах ограничение в 3Гб на процесс никто
не отменял.
Неактивен