2013-10-02 3 views
2

Этот запрос отлично работает с файлом .sql, выполненным из linux cli. Когда я запускаю его из phpmyadmin, он запускает процесс сна, а демон http на сервере переходит на 99% использования процессора, через несколько минут запрос выходит из строя из-за «внутренней ошибки сервера». Есть идеи?Проблема phpMyAdmin с проверенным запросом mysql

INSERT INTO Balance(id, Bal) 
     SELECT a.id, SUM(a.Amount) 
     FROM(
      SELECT ct.id, SUM(ct.Charges) as Amount 
       FROM ChargesT ct 
       GROUP BY ct.id 
     UNION ALL 
      SELECT pt.id, -SUM(pt.PaymentAmt) as Amount 
       FROM PaymentsT pt 
       GROUP BY pt.id 
      ) a 
     GROUP BY a.id 
+0

Сколько времени занимает запрос при запуске из CLI? –

+0

@MarcDelisle Секунды, почти мгновенные. – user2162192

+0

Технически я не понимаю, почему вам нужно суммировать суммы и суммы платежей в подзапросе, поскольку внешнее суммирование и группировка сделают все это для вас. Фактически вы можете написать это без подзапроса, который существенно улучшил бы производительность – vogomatix

ответ

0

Попробуйте удалить суммирование в подзапрос. Я думаю, вы можете сделать это по одному запросу, но вот начало

INSERT INTO Balance(id, Bal) 
    SELECT a.id, SUM(a.Amount) 
    FROM(
     SELECT ct.id, ct.Charges as Amount 
      FROM ChargesT ct 
     UNION ALL 
     SELECT pt.id, -pt.PaymentAmt as Amount 
      FROM PaymentsT pt 
     ) a 
    GROUP BY a.id 
+0

некоторые платежи уже отрицательные суммы в таблице PaymentAmt, кредиты, поэтому, если я суммирую после того, как подзапрос сделает это неправильно – user2162192

Смежные вопросы