저는 PHP 개발자이므로 엄격하지는 않습니다. 큰 테이블 ~ 5.5GB 덤프가 있습니다. PM은 새로운 기능을 수행하기 위해 새로운 칼럼을 만들기로 결정했습니다. 테이블은 InnoDB이므로 내가 시도한 것 :
테이블 잠금 화면에서 테이블을 변경하십시오. ~ 30 시간도 걸리지 않았습니다. 그래서 나는 그것을 막았다. 모든 거래를 끝내지는 않았지만 두 번째 시간은 멀티 락이 아니기 때문에 실수했습니다. 상태는
copy to tmp table
입니다.이 테이블에 대해서도 파티셔닝을 적용해야하므로 동일한 이름과 새 구조로 덤프, 이름 바꾸기 및 테이블을 작성하기로 결정했습니다. 그러나 덤프는 엄격한 사본을 만들고 있습니다 (적어도 다른 것을 찾지 못했습니다). 그래서 새 열을 덤프
sed
하고 쿼리하기 위해 추가 했습니다. 그러나 몇 가지 이상한 오류가 시작되었습니다. 나는 이것이 문자셋에 의한 것이라고 생각합니다. utf-8의 테이블과 파일은 이후 us-ascii가되었습니다sed
. 그래서 30 %의 데이터에 오류 (알 수없는 명령 '\' ')가 있습니다. 따라서 이것은 또한 나쁜 방법입니다.
이것을 달성하고 성능을 향상시키는 다른 옵션은 무엇입니까 (php 스크립트로 할 수는 있지만 시간이 오래 걸립니다). INSERT SELECT
이 경우 성능은 무엇입니까?
미리 감사드립니다.
SET NAMES utf8
와COLLATION
데이터의 30 %는 이후에 손상 IDK MEH 나누었다 이유sed
. 벌크로드가 가장 빠를 것이라고 생각하지만 누락 된 것이 더있을 수 있습니다. 감사합니다 Mark