2011-03-17 4 views
4

짧은 기간에 많은 양의 삽입을 덤프해야 모든 레코드를 파일로 덤프하고 로드 데이터 infile mysql의 문장으로로드해야합니다. 이것은 괜찮 았지만 지금은 더 적은 삽입을하기 위해 BLOB 필드에 값을 조금 더 압축합니다. 문제는 내가 BLOB 필드를 파일에 덤프하여 데이터로드시 올바른 값을 삽입 할 수있는 방법을 찾을 수 없다는 것입니다. 나는 여러 가지 방법을 시도했지만 해피 엔딩이 없으며 하나씩 삽입하지 않으려합니다.BLOB 필드가있는 데이터 infile을로드하십시오.

이 작업을 올바르게 수행하는 방법을 아는 사람이 있습니까?

+0

필드와 필드 사이의 쉼표를 사용하여 blob을 csv 유형 엔터티로 만드는 방법은 어떻습니까? 그게 효과가 있니? –

+0

이제 나는 그것에 대해 생각해 보았습니다. 보통 텍스트 파일에서 데이터 infile을로드하는 것보다 더 빨리 무엇을 만들 수 있습니까? 나는 모든 데이터를 BLOB에 넣었을지라도 서버에서 동일한 수의 삽입 (업데이트와 유사)을 수행해야한다고 생각한다. –

+0

시도했지만 BLOB 필드를 제대로 삽입하지 않았습니다. 로드 데이터 infile *을 사용하여 행을 삽입하면 하나씩 수행하는 것보다 더 많은 성능이 있어야합니다. 지금은 "INSERT INTO _TABLE_ VALUES(),(),(), .."와 같은 삽입을 사용하고 있습니다. 이는 개별적으로 삽입하는 것보다 낫습니다. – Pabloks

답변

7

Blob 데이터의 HEX() 문자열을 파일에 저장하십시오. 당신의 SQL에 대한

, SET 절을 사용하는 예를 들어, 표 INTO

LOAD 데이터 INFILE 'path.txt' MYTABLE (1 열, 2 열, @ hexColumn3) SET의 3 열 = UNHEX (@ hexColumn3);

+0

그것은 작동합니다! 고마워요. D – 9nix00

관련 문제