Update выполняется уже 2 дня. Как ускорить ? Хелп плиз!

Тема в разделе "Базы данных", создана пользователем tartas, 20 май 2013.

Модераторы: latteo
  1. tartas

    tartas

    Регистр.:
    5 сен 2010
    Сообщения:
    294
    Симпатии:
    29
    Ребят подскажите как быть.

    Есть за запрос
    Update tab1, tab2, tab3
    set tab1.name= tab3.name , tab1.adres= tab3.adres , tab2.message= tab3.message
    where tab1.id= tab3.id and tab2.id= tab2.sync_id and tab1.lang= ru.

    таблицы размером 15 (myisam), 800 (myisam) и 650мег (innodb).

    where работает либо с интежен столбиком либо с маленьким текстом до 5 знаков.
    А Set вставляет большие куски текста, в несколько килобайт.

    Запрос выполняется крайне долго как вы поняли.
    Как можно это ускорить?? возможно буфер увеличить или еще что-то.
     
  2. ne4to

    ne4to Постоялец

    Регистр.:
    16 ноя 2012
    Сообщения:
    107
    Симпатии:
    50
    Вы проверяли на дедлоки? не такие уж большие таблицы чтобы выполнять запрос 2 дня
    для ускорения думаю Вам стоит сделать explain и посмотреть что там происходит
     
  3. Mekc

    Mekc Писатель

    Регистр.:
    16 май 2013
    Сообщения:
    5
    Симпатии:
    0
    Уважаемые пользователи, подскажите как быть если информация в таблицы заносится очень медленно, где то спустя 4-5 секунд и переодически подлагивает?
    Использую движок InnoDB, оптимизировал вроде всё по шаблону, но скорость остаёт желать лучшего?
     
  4. ne4to

    ne4to Постоялец

    Регистр.:
    16 ноя 2012
    Сообщения:
    107
    Симпатии:
    50
    что с железом ? это серв или домашний комп ?
     
  5. tartas

    tartas

    Регистр.:
    5 сен 2010
    Сообщения:
    294
    Симпатии:
    29
     
  6. ne4to

    ne4to Постоялец

    Регистр.:
    16 ноя 2012
    Сообщения:
    107
    Симпатии:
    50
    Вам стоит остановить все приложения которые используют таблицы hotels_info, hotels, allhotel

    кильнуть висящие запросы кроме вашего апдейта, и дело должно двинутся
     
  7. tartas

    tartas

    Регистр.:
    5 сен 2010
    Сообщения:
    294
    Симпатии:
    29
    это есть мои запросы через которые я проверял жив ли мускул. Того они и в очереди.
    а вот собсна главный запрос который четверть миллиона сек уже тенется.
     
  8. ne4to

    ne4to Постоялец

    Регистр.:
    16 ноя 2012
    Сообщения:
    107
    Симпатии:
    50
    иннодб дедлоки отдельным пунктом отображатются
    LATEST DETECTED DEADLOCK

    покажи
    SHOW FULL PROCESSLIST

    кстати.. у тебя ж там микс, иннодб + майисам, когда майисам читает то лочится на запись.. скорее всего поэтому и дедлок возникает, ты пытаешЪся читать и записать в одну и туже майисам таблицу

    как вариант сделать копию табилцы, из одной читать .. в другую писать , вариант два перегнать в иннодб
     
  9. tartas

    tartas

    Регистр.:
    5 сен 2010
    Сообщения:
    294
    Симпатии:
    29
     
  10. ne4to

    ne4to Постоялец

    Регистр.:
    16 ноя 2012
    Сообщения:
    107
    Симпатии:
    50
    похоже на то что таблица таки висит в READ LOCK,