현재 8 백만 행 이상의 MySQL Db가있는 프로젝트를 진행하고 있습니다. 일부 쿼리를 테스트하기 위해 일부가 제공되었습니다. 그 중 약 20 개의 열이 있는데 그 중 5 개가 나에게 유용합니다. 즉 : First_Name, Last_Name, Address_Line1, Address_Line2, Address_Line3, RefundID
하위 쿼리로 업데이트가 완료되지 않음
각 행에 대해 고유하지만 임의의 RefundID
을 작성해야하는데 이는 문제가되지 않습니다. 문제는 First_Name, Last_Name, Address_Line1, Address_Line2, Address_Line3
이 같은 행에 대해 과 동일한RefundID
을 생성하는 것입니다.
이것은 큰 행 수가 많은 MySQL과 관련한 첫 번째 실제 작업입니다. 지금까지 나는이 쿼리를 만들었습니다
-- Creating Teporary Table --
CREATE temporary table tempT (SELECT tt.First_Name, count(tt.Address_Line1) as
a1, count(tt.Address_Line2) as a2, count(tt.Address_Line3) as a3, tt.RefundID
FROM `tempTable` tt GROUP BY First_Name HAVING a1 >= 2 AND a2 >= 2 AND a3 >= 2);
-- Updating Rows with First_Name from tempT --
UPDATE `tempTable` SET RefundID = FLOOR(RAND()*POW(10,11))
WHERE First_Name IN (SELECT First_Name FROM tempT WHERE First_Name is not NULL);
이 업데이트 쿼리가 실행에 계속 없지만 결코 끝, tempT
개 이상의 30K 행이 있습니다. 이 쿼리는 800K 개 이상의 행이있는 기본 DB에서 실행됩니다.
누군가 나를 도와 줄 수 있습니까?
감사
안녕하세요. 회신 해 주셔서 감사합니다. 환불 ID는 9-12 자의 고유 한 값이어야합니다. MD5는 32 자리입니다. (나쁜 숫자 메모리). 나는'First_Name, Last_Name, Address_Line1, Address_Line2, Address_Line3'이 같은 모든 행에 동일한 ID를 부여해야합니다. 감사합니다 –
네, 그 사건일지도 모르고 분명히 위의 내 대답에 이것을 해결했다. – symcbean