단일 쿼리로 한 번에 여러 행을 업데이트하는 가장 좋은 방법을 찾고 있습니다. 현재 내가 가진 :한 쿼리에서 여러 행 업데이트 매우 느린 성능
UPDATE `profiles` SET `name` = CASE `id` WHEN 1 THEN 'John' WHEN 2 THEN 'Jane' END, `gender` = CASE `id` WHEN 1 THEN 'Male' WHEN 2 THEN 'Female' END WHERE `id`=1 OR `id`=2
하지만이 약 1 초간하여 개인 업데이트 쿼리에 반대 (내 진짜 쿼리가 2 천만 행의 데이터베이스 (10 개) 필드에) 완료하는 데 약 4 분 정도 걸립니다.
나는 실제로 무슨 일이 일어나고 있는지 알아 내려고 노력하고 있습니까? WHERE 절에 ID를 지정하면 속도가 빨라질 것이라고 생각했습니다.
그냥 빨리 찍었습니다. 나는 이것을 위해 2 가지 다른 질의를 준비 할 것이다.'CASE' 메서드를 사용하면 mysql이'WHERE 'id'= 1 또는 'id'= 2'를 지정해도 모든 ID를 수집하도록 할 수 있습니다. 고유 한 'id'를 직접 사용하여 각 사례에 대한 쿼리를 준비하는 경우이를 수행하는 가장 빠른 방법이 있습니다. 2 개의 명령문을 사용하면이 'CASE' 메쏘드가 쿼리를 이상하게 만든다.) – Marco