За последние 24 часа нас посетили 228114 программистов и 1731 робот. Сейчас ищут 1730 программистов ...

Оптимизировать запрос

Тема в разделе "MySQL", создана пользователем gix, 1 мар 2015.

  1. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    Добрый день. У меня есть несколько таблиц в которых суммарно около 5000 строк. И есть главная страница на которой выводятся результаты обработки этих таблиц. Так вот, печалит меня то что эта страница грузится секунд 6 и это не есть гуд. Проверил запросы, нашелся один запрос который существенно тупит. Я попробовал добавить индексы в таблицу но скорость нихрена не выросла.С индексами сталкиваюсь впервые, погуглил и увидел что их можно называть также как и поля и тогда сервер будет автоматически использовать эти индексы в запросах(если неправильно понял то прошу исправить). Так вот как можно оптимизировать запрос чтоб не было такой долгой времени обработки? вот сам запрос(это имена 10 пользователей с максимальным балансом на счету (максимальный баланс по одному номеру);)
    Код (Text):
    1. select phone_numbers.user_id,users.name,phone_numbers.balance from users,phone_numbers
    2.         group by phone_numbers.user_id order by phone_numbers.balance desc limit 10
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    неправильно. ты задаешь тип индекса и перечисляешь поля в него входящие. в процессе запроса оптимизатор выбирает каким индексом воспользоваться. индексы продумывают на стадии проектирования приложения в целом и базы данных в частности. проследить за работой индексов можно командой explain.

    с этого и начнем.
    и как бы структуру таблицы принято публиковать.
     
  3. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]

    Добавлено спустя 1 минуту 6 секунд:
    вот кинул структуру таблиц и индексы которые я сделал. Подскажи плиз что можно с запросом сделать, а то сроки горят а с таким лагом сдавать не хочу
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    у человека с такими знаниями не может быть сроков. он должен тупо сидеть на кошках учиться)))

    тут еще чего-то не хватает
     
  5. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    Так что, можно что то сделать?и чего не хватает?
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    покажи мне show create table и explain. не надо мне скриншотов.
     
  7. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    Ха) проснулся и на свежую голову переписал запрос, теперь все летает. Тема закрыта!