1
pt-archiverでこれを表現する方法は?MySQLクエリをPercona pt-archiver文字列に変換
DELETE * FROM Table1 JOIN ON Table1.id=Table2.id WHERE Table2.id>=1;
pt-archiverの文字列内でTable1とTable2に参加する可能性はありません。私はこれを試みたが、表2に参加した文字列が欠落しています。
pt-archiver --source h=127.0.0.1,D=db,t=Table1 --purge --where 'Table2.id >= 1'
は私にあなたのアイデアのいくつかを提供してください。
pt-archiverはマルチテーブルのケースをサポートしていないようです。あなたのクエリを最適化したい場合は、私は大きなものを小さなものに分割すると思います。例えば、 '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 AND child.col> = 1) ''を返します。これはうまくいくかもしれませんが、私は親テーブルがどのようにそしてどこで宣言されるべきか自信がありません。いくつかのアイデア? – Eric
おそらくこれは? 'pt-archiver --source h = localhost、D = db、t = Table1 --purge \ --where 'は存在します(SELECT * FROMテーブル2 WHERE id =テーブル1とテーブル2 id = 1)' ' – Eric