所以我有一個二進制日誌需要永久恢復,因爲一些寫得不好的代碼每隔一秒鐘就會更新一個表格,對於當前登錄的每個用戶。當然,恢復過程正在恢復這些行中的每一行,並使腳本比需要的時間更長。如何從MySQL二進制日誌中刪除特定的查詢
更新此文件以從所有二進制日誌中刪除特定查詢的最快方法是什麼?我有這個PHP腳本,我測試過它在一個較小的文件上工作,但preg_replace
似乎有一些限制(或者只是PHP作爲一個整體),當它涉及到文件大小。
這裏是我的PHP線:
file_put_contents("/logs/restore.sql",preg_replace("/use(?:.|\n)+?update `notifi(?:.|\n)+?COMMIT\/\*\!\*\/;/mui",'',file_get_contents("/logs/restorex.sql")));
正則表達式中似乎有與較小的文件中偉大的工作,它只是我不與任何其他語言一樣好(PHP是我的主要語言)知道我應該使用什麼,或者如何將該正則表達式實現爲其他東西。
** grep **會更快 - 使用_-v_標誌來指示您只想保留那些沒有您標識的內容的行。 – user2182349
你認爲你可以幫助我嗎?我是一個bash noob,我不知道從哪裏開始我可以找到的示例 –
您可以發佈一小部分測試數據嗎?也許兩條你不想匹配的線和一條線? – user2182349