我正在使用 MySql 查询从 Magento 中删除 50000 个产品,但每次我都会收到超时错误。
lost connection to mysql server during query
有什么办法可以解决这个问题吗?我已经在 php.ini 中增加了 max_execution_time
。
我还将 max_allowed_packet
设置为 64M
我正在使用以下命令删除产品。
DELETE FROM catalog_product_entity WHERE entity_id IN(此处我提供的 entity_id 以逗号分隔)
DELETE FROM catalog_product_entity WHERE entity_id IN ('1','2','3',.......'5000')
有没有其他方法可以在没有超时的情况下安全地删除产品?
注意:这个命令会帮助我加速应用程序吗
mysql -u root -pYOURPASSWORD -e "flush query cache";
我使用 cronjob 将其设置为每 9 分钟运行一次
我的数据库非常大,超过 50 GB,服务器是具有 16 GB RAM 的专用服务器。
我直接在 phpmyadmin 中运行这个查询。
实体是随机排列的
最佳答案
一些想法取决于你的情况:
1) 您使用的是持久数据库连接吗?在查询期间是否使用/锁定了表?
查看mysql_pconnect
mysql_pconnect — Open a persistent connection to a MySQL server
2) 也许您只需要调整 MySQL 的默认超时时间? 看这里 How to Change the MySQL Timeout on a Server
3) 这里也有一个很好的答案,这可能是您的问题,因为它是一个很大的查询: Lost connection to MySQL server during query
关于mysql - Magento 在查询删除 50000 个产品时失去与 mysql 服务器的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23893587/