Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация запроса / 5 сообщений из 5, страница 1 из 1
24.06.2016, 14:37
    #39261834
ADMINCHIKKK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса
Привет всем!
Помогите пожалуйста оптимизировать запрос. Что-то не так, а что не знаю...

Имеются таблицаы:
-абонентов - TVBilling_abonents
-пользователей - TVBilling_users
-активных абонентов - TVBilling_active (тут привязка абонента с тарифом, даты и т.д.)
-оплат активного абонента по его тарифу - TVBilling_billing

Так вот, задача такая, надо, чтобы в конце каждого дня получать сумму кассы, кто оплатил, кто принял деньги, сколько оплатил и т.д. Делаю так:

авторselect * from TVBilling_billing, TVBilling_active, TVBilling_users, TVBilling_abonents
where DATE(TVBilling_billing.date)='2016-06-24'
and TVBilling_billing.user not like 'SYSTEM'
and TVBilling_billing.id_var=TVBilling_active.id
and TVBilling_billing.user=TVBilling_users.id_2
and TVBilling_active.id_abonent=TVBilling_abonents.id_2

Думаю принцип понятен. Собираю данные с нужных мне таблиц, чтобы вывести полную интересующую мне информация. Ну так вот, делаю запрос .... и жду 2 минуты :(
...
Рейтинг: 0 / 0
24.06.2016, 14:40
    #39261841
ADMINCHIKKK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса
Добавлю, абонентов в таблице порядка 1700. Но предполагается что будет больше.
...
Рейтинг: 0 / 0
25.06.2016, 13:29
    #39262260
ADMINCHIKKK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса
Нет идей?

В таблице TVBilling_billing хранится:

ID того, кто принял оплату из таблицы TVBilling_users
ID активного абонента из таблицы TVBilling_active,

а TVBilling_active в свою очередь хранит ID тарифа, ID абонента привязанного к этому тарифу

вот и получается чтобы получить нужную мне инфу из таблицы TVBilling_billing сначала беру и по ID смотрю кто принял оплату из TVBilling_users потому беру ID активного пользователя и смотрю кто этот пользователь из таблицы TVBilling_active. Но в этой таблицы видно только ID абонента, и привязка его к тарифу, поэтому надо из TVBilling_abonents получить по ID ещё имя, фамилию, адрес.
...
Рейтинг: 0 / 0
25.06.2016, 13:29
    #39262261
ADMINCHIKKK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса
Ну жду не 2 минуты, но где-то в среднем 70-80 секунд ответа...
...
Рейтинг: 0 / 0
26.06.2016, 00:55
    #39262451
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация запроса
сделайте
EXPLAIN SELECT....
и смотрите какие индексы используются, какие добавить
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация запроса / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]