mysql - Magento 在查询删除 50000 个产品时失去与 mysql 服务器的连接

标签 mysql magento nginx magento-1.7 database-performance

我正在使用 MySql 查询从 Magento 中删除 50000 个产品,但每次我都会收到超时错误。

 lost connection to mysql server during query

有什么办法可以解决这个问题吗?我已经在 php.ini 中增加了 max_execution_time

我还将 max_allowed_pa​​cket 设置为 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/

相关文章:

mysql - 自动为字符生成唯一的 id mysql

Magento - 访问客户的愿望 list

Magento 链接不起作用

Angular 应用 + NGINX + Docker

PHP如果我想回显表而不是foreach循环我该怎么办

php - 如何使用 php 在 select 中提取 select 的值?

css - 如何更改magento中一个类别的背景图片?

nginx - 如何在入口处通过 HTTP 在多个端口上公开服务?

ssl - Certbot (300 多项选择) & Nginx & DNS 的身份验证问题

mysql - MYSQL中的Join(从一张表开始计数,从一张表开始列出)