Долгое Sending data

Тема в разделе "Базы данных", создана пользователем kosiakcrakc, 29 дек 2012.

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

    kosiakcrakc Постоялец

    Регистр.:
    26 фев 2010
    Сообщения:
    60
    Симпатии:
    15
    Sending data MySQL выполняется 35 секунд, куда копать?
     
  2. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    а можно более подробно где такое сообщение, какой запрос исполняется и так далее?
    навскидку
    http://stackoverflow.com/questions/863447/mysql-slow-sending-data-phase
    http://stackoverflow.com/questions/3638624/mysql-profiler-sending-data (последнее сообщение)
     
  3. ShaDeRzz

    ShaDeRzz

    Регистр.:
    16 окт 2007
    Сообщения:
    176
    Симпатии:
    65
    Выполните ваш mysql запрос, поставив перед ним explain
    Так вы увидите, какое количество записей вы получаете этим запросом.
    Обычно такое бывает, когда вы пытаетесь вытянуть запросом несколько миллионов записей, без использования LIMIT
    Соответственно и копайте в сторону того, как ограничить выборку
     
    Leony нравится это.
  4. unknown34

    unknown34 Создатель

    Регистр.:
    8 сен 2008
    Сообщения:
    19
    Симпатии:
    2
    проверьте есть ли индексы по искомым полям, также крайне болезненна связка order by + limit, лучше ее избегать любыми способами, в том числе и выборкой по диапазону (вместо лимита указывать диапазон идентификаторов), но это не всегда подходит
     
  5. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    да, особенно в тех случаях, когда диапазон не отфильтровывает большую часть записей (тоесть почти все идентификаторы включены в запрос), тогда IN становится просто огромным
     
  6. unkn0wn

    unkn0wn

    Регистр.:
    22 дек 2006
    Сообщения:
    164
    Симпатии:
    86
    Если sending data длится 35 секунд, то неплохо бы посмотреть в сторону php, потому как наиболее вероятная причина - выборка больших объемов без всяких LIMIT'ов. Не так часто, но все-таки встречается проблема с unix-сокетами, которые в некоторых ситуациях работают значительно медленнее, чем сетевые сокеты. Ну и один раз у меня была проблема со свопом: памяти на сервере критически не хватало, а выборки были довольно существенные, как итог данные выгружались из мускула напрямую в своп, и статус Sending data мог спокойно висеть секунд по 5-10.
     
    latteo нравится это.