1
pt-archiver에서이를 표현하는 방법은 무엇입니까?MySQL 쿼리를 Percona pt-archiver 문자열로 바꿈
DELETE * FROM Table1 JOIN ON Table1.id=Table2.id WHERE Table2.id>=1;
pt-archiver 문자열 내에서 Table1 및 Table2에 참여할 가능성을 찾을 수 없습니다. 이 시도했지만 Table2 가입 문자열이 누락되었습니다.
pt-archiver --source h=127.0.0.1,D=db,t=Table1 --purge --where 'Table2.id >= 1'
나에게 몇 가지 아이디어를 제공해주십시오.
pt-archiver가 다중 테이블 케이스를 지원하지 않는 것 같습니다. 쿼리를 최적화하고 싶다면 큰 DELETE를 작은 쿼리로 분할하는 것이 좋습니다. 'Table2.id> = 20000000' ... 그런 다음'Table2.id> = 1000000' .. – AnouarZ
예, 작동 할 수 있음을 알고 있지만이 방법을 사용하면 서버가 수동으로 오버로드 문제를 해결하고 조정해야합니다 응급 상황에서. 나는 다음과 같이 Percona 홈페이지에서 몇 가지 해결책을 발견했다 :'pt-archiver -source h = host, D = db, t = child-purge \ -where 'EXISTS (SELECT * FROM parent WHERE col = child.col 및 child.col> = 1) '' 이 작업을 할 수 있지만 부모 테이블을 선언 할 방법과 위치를 확신하지 못합니다. 몇 가지 아이디어? – Eric
아마도 이걸 좋아합니까 ?? '존재하는 (선택 *에서 Table2 WHERE id = Table1.id와 Table2.id> = 1)'' – Eric