php - 如何减少mysql查询的内存和cpu使用率?

标签 php mysql

我的表中有超过 300,000 行。我想删除重复的行和相同的数据。 所以我运行这些查询。

$sql=mysql_query("SELECT DISTINCT n1.id FROM dv2xp_adsmanager_ads n1, dv2xp_adsmanager_ads n2 WHERE n1.id < n2.id AND n1.ad_imgone = n2.ad_imgone AND n1.ad_text = n2.ad_text  LIMIT $start,$limit ");

这些查询可以显示重复的行。但这非常慢,并且在我的服务器上将杯子使用率增加到 100%。 如何解决这些问题?

最佳答案

在不了解您正在使用的数据的情况下,我最好的猜测是您可以使用 INNER 和 OUTER JOIN。 DISTINCT 将根据主键带来不同的结果,但如果您有多个具有多个键的表,结果可能不是最佳的。因此,最好使用 JOIN 以便仅从每个表中获取基本数据。

这是一篇关于 JOIN 的好文章:What is the difference between “INNER JOIN” and “OUTER JOIN”?

我希望这些信息对您有所帮助,并为您指明正确的方向。

关于php - 如何减少mysql查询的内存和cpu使用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39843992/

相关文章:

php - 受影响的行不工作 - Codeigniter

php - 检查内部(嵌套)MySQL 查询是否返回值

javascript - 如何使用 AJAX/PHP 编辑 mySQL 表中的一行?

mysql - 在非常大的表上使用 Count 进行分组

php - HTML 表单 - 将每一行作为数组发送

php - 为什么将我的 HTML 表单提交给 PHP 脚本时,特殊字符会出现困惑?

mysql - 如何理解在不使用 INNER JOIN 的情况下将表连接到自身的 SQL SYNTAN?

php - 如何在 Grocery 店中减去 DateTime?

bash - Shell 脚本将所有输出转储到一个文件

php - 复制()函数不起作用