Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте, есть таблица с которой ничего нельзя сделать, восстановить не оптимизировать не открыть. Все остальные таблицы в той же базе работают нормально. Именно с этой таблице какой то косяк не могу понять что с ней. При открывании через phpmyadmin все зависает через другие программы то же, удалить не получается , все виснет. Получилось сделать только дамп Что посоветуете?
Вот такого вида
Неактивен
Раз дамп получилось сделать, то можно просто восстановить его (только сначала убедитесь, что он рабочий, восстановив в тестовой базе).
Каким образом сделали дамп?
Сохранилась ли проблема после того как сделали дамп?
Есть ли в выводе SHOW FULL PROCESSLIST; запросы к этой таблице в статусе locked в момент проблемы?
Неактивен
Я хотел восстановить дамп, но я не могу удалить таблицу просто все виснет. Дамп делал при помощи программы Navicat. Помимо того что бы вернуть все как было, как бы узнать почему такое случилось. Данные заносили парсером в 4 таблицы, все остальные работают нормально кроме этой.
После того как сделал дамп проблемы остались пробовал восстанавливать через Navicat и через phpmyadmin везде оно висит.
Есть ли в выводе SHOW FULL PROCESSLIST; запросы к этой таблице в статусе locked в момент проблемы?
Как это сделать не знаю. Можете рассказать подробнее.
Неактивен
выполните эту команду в вашем клиенте (phpadmin, и т.д.)
Неактивен
Вот результат http://gyazo.com/2e88eff0cc37c377df2c8c6fba4db065
locked нет
Неактивен
А если выполнить запрос к таблице, то что при этом покажет processlist?
Неактивен
vasya написал:
А если выполнить запрос к таблице, то что при этом покажет processlist?
Я не смог подобрать синтаксис что бы сделать, однако обноружил что таблица таки была удаленна, видимо после долгих обновлений процесса удаления я все таки ее добил.
Теперь я тот дамп импортировал снова, импорт прошел без ошибок, и опять та же история что и была. Как вы думаете что может быть?
Неактивен
Если вы восстановите дамп таблицы в другую базу (тестовую), она будет работать?
Неактивен
Я импортировал ее в другую базу сама по себе такая ситуация, когда эта таблица одна в базе все работает нормально, она открывается. Но как только я импортиру все остальные таблицы, повторяется опять же ситуация описанная выше. Я даже не знаю на что думать, я бы еще подумал что лаги связанны с движком, но вот когда в phpmyadmin наблюдаю такую ситуацию, то понимаю что проблема где то внтури базы.
Неактивен
Т.е. у вас никто к базе не обращается (никакой движок и т.д.), вы пытаетесь сделать запрос к этой таблице и все виснет?
Неактивен
Да, я скинул вам доступы в личку.
Неактивен
Ага. show full processlist показывает, что
Id User Host db Command Time State Info
Завершить 384824 test2 localhost test2 Query 3961 Sending data SELECT p.product_id, IF (p.price = '0', (SELECT MI...
а все остальные запросы к таблице `oc_product` находятся в состоянии "Waiting for table", т.е. ждут её освобождения.
Неактивен
Я не совсем понимаю суть проблемы, получается что таблица висит из за каких то запросов к ней? это очень странно т.к. их нет. Или это запрос count? который считает?
Отредактированно Petr (26.09.2013 01:18:08)
Неактивен
Запросы есть, что можно увидеть командой show full processlist
Один запрос заблокировал таблицу и выполняется уже больше часа, из-за чего все остальные запросы к этой таблице вынуждены ждать.
Неактивен
А как его отменить?
Неактивен
в админе выполнив команду SHOW PROCESSLIST
в резултатах будет красный крестик напротив каждой строки.
но важнее понять откуда он берется, так как там ещё несколько таких же в очереди стоят
Неактивен
да спасибо, теперь понял при заходе в категорию, он пытается вытянуть товары сортировкой по цене, это его вешает, вот только не понятно почему, один весит другой летает.
Неактивен
Petr написал:
вот только не понятно почему, один весит другой летает.
это вы о чем?
Неактивен
Ну я так понимаю выбирать по цене среди 80000 записей от большего к меньшему его напрягат, вот он и вешается. Другой сайт копия на том ж сервере, с 50000 товаров таких кондилябров не выдает, вот это меня смущает.
Неактивен
Petr написал:
Ну я так понимаю выбирать по цене среди 80000 записей от большего к меньшему его напрягат, вот он и вешается.
Ваш запрос перебирает 80000 строк, при этом для каждой строки он выполняет 3 подзапроса. 2 из которых требуют полного перебора таблицы в 140000. Не удивидельно, что он уходит в состояние глубокой задумчивости.
Я рекомендую вам посмотреть статью http://webew.ru/articles/4856.webew
Petr написал:
Другой сайт копия на том ж сервере, с 50000 товаров таких кондилябров не выдает, вот это меня смущает.
С ростом кол-ва товаров не хватает памяти, начинает сбрасывать промежуточные результаты на жесткий.
Неактивен