我用Temp表为Codeigniter编写了一个查询。它返回近25000行。
但是,当我在实时服务器上使用此查询时,它将失去数据库连接。

这是我的查询:

SELECT temp.id office_id,
       temp.office_name,
       temp.svcic,
       count(service_transaction.service_id) AS service_total
  FROM (SELECT users.id, users.office_name, service_list.id svcic
          FROM users,service_list
         WHERE users.del_status = 0
           AND users.type='agency'
           AND service_list.del_status = 0
           AND users.id != '-1' ) temp
     LEFT JOIN service ON temp.id = service.office_id
           AND service.del_status=0
           AND (service.date
       BETWEEN '2017-07-26'
           AND '2017-08-26' )
     LEFT JOIN service_transaction ON service_transaction.service_id = temp.svcic
           AND service_transaction.service_transaction_id=service.id
     LEFT JOIN recipient ON recipient.id =service.recipient_number
           AND recipient.gender != 'all'
      GROUP BY temp.id,
               temp.office_name,
               temp.svcic
      ORDER BY temp.office_name


如何不使用temp简化查询。我相信这是在Temp表上发生的。

最佳答案

根据我的理解,原因之一可能是

可以将innodb_buffer_pool_size设置为大于服务器上可用的RAM大小。解决方法可能是使用innodb_buffer_pool_size的正确设置更新my.cnf。

关于mysql - 失去与MYSQL的连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45898620/

10-10 12:55