php - 如何优化更新查询以获得更好的 MySQL 性能

标签 php mysql sql mysql-error-1064

我在 mySQL 数据库中有 2 个表... 他们非常大..现在大约有 100 万,很快就会有 500 万左右

一个是求职者 另一个是joomla用户表

我想将 ID 复制或插入到 jobseeker 表中,两者的电子邮件列都匹配..

即求职者电子邮件 = jos 用户电子邮件。

我使用了下面的查询,但是它花费了太多时间并且给 mysql 服务器带来了沉重的负载....查询被卡住了,我总是最终重新启动 mysql ...

UPDATE  `jos_jbjobs_jobseeker` 
SET user_id =   ( SELECT jos_users.id
FROM jos_users
WHERE jos_users.email =  jos_jbjobs_jobseeker.email)
WHERE EXISTS
  ( SELECT jos_users.id
    FROM jos_users
    WHERE jos_users.email =  jos_jbjobs_jobseeker.email);

如何优化上述查询以获得更好的性能。另外,如果它可以批量执行,即一次 20000 或 40000 条记录,我会很感兴趣。

请指教

最佳答案

试试这个:

UPDATE
    jos_jbjobs_jobseeker a
    INNER JOIN jos_users b ON a.email = b.email
SET
    a.user_id = b.id

关于php - 如何优化更新查询以获得更好的 MySQL 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10107595/

相关文章:

php - 获取数据库表名作为列名

Mysql获取多个范围内的最大值

php - 如何使用 php 插入具有特定间隔的日期

sql - 对同一个表进行多个子查询的 SELECT

java - 问 : How to get key value from a HashMap of a ComboBox and save it to the database

php - bigquery php 客户端无法与 Apache 网页一起使用(Ubuntu 18.10 服务器)

PHP is_file 和服务器根相对路径

php - Magento 后端自定义地址属性

php - 防止在线酒店预订中的竞争条件

sql - SQL Server 中的 pivot varchar 列?