Присоединение к столу происходит так медленно! - PullRequest
0 голосов
/ 15 июля 2010

Я объединяю две таблицы. В таблице a есть сотни записей, а в таблице b - сотни тысяч записей. Я присоединил их к внутреннему и левому соединениям, но это два медленных запроса. Мой запрос:

SELECT 
    ch.id,
    ch.client_client_id,
    ch.duration,
    ch.start,
    ch.isread,
    ch.prefix,
    ucr.ucr_add_factor,
    ucr.ucr_period,
    ucr.ucr_cr_prefix 
FROM 
    call_history AS ch 
    LEFT JOIN tbl_usr_call_rates AS ucr 
        ON (
            ch.prefix=ucr.ucr_cr_prefix 
            AND ch.client_client_id=ucr.ucr_callshop_id
        ) 
WHERE 
    ch.isread='0' 

Как я могу увеличить производительность

Спасибо за продвижение ...

Ответы [ 5 ]

2 голосов
/ 15 июля 2010

проверьте используемые индексы. Вы можете увидеть, какие из них используются по телефону

EXPLAIN SELECT 
ch.id, ch.client_client_id, ch.duration, ch.start, ch.isread, ch.prefix, 
ucr.ucr_add_factor, ucr.ucr_period, ucr.ucr_cr_prefix
FROM call_history AS ch 
LEFT JOIN tbl_usr_call_rates AS ucr
ON (ch.prefix=ucr.ucr_cr_prefix AND ch.client_client_id=ucr.ucr_callshop_id)
WHERE ch.isread='0' 
1 голос
/ 15 июля 2010

обычные подозрения:

проверьте индексы, убедитесь, что соединения не требуют более одного поля, или у вас будет декартово произведение

есть много других, но этоглавные.

Джим

0 голосов
/ 15 июля 2010

Сначала выполните фильтрацию с помощью предложения WHERE, прежде чем присоединиться. Таким образом, вы присоединяетесь к уже отфильтрованному результату, а не объединяете их все, а затем фильтруете большой результат.

0 голосов
/ 15 июля 2010

Вы можете попробовать добавить индекс для столбцов, к которым вы присоединяетесь.

0 голосов
/ 15 июля 2010

Я так понимаю, у вас есть индексы на этих полях?

call_history.prefix
tbl_usr_call_rates.ucr_cr_prefix
call_history.client_client_id
tbl_usr_call_rates.ucr_callshop_id
call_history.isread
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...