2 억 3 천 7 백만 행의 MySQL 테이블이 있습니다. 이 모든 행을 처리하고 새 값으로 업데이트하려고합니다.MySQL 테이블의 모든 행을 메모리 효율적으로 처리하려면 어떻게해야합니까?
나는 순차적 ID 년대를해야합니까, 그래서 난 그냥 select
문을 많이 사용할 수 있습니다
where id = '1'
where id = '2'
이 Sequentially run through a MYSQL table with 1,000,000 records?에서 언급 한 방법이다.
그러나 메모리에 전체 세트를로드 할 필요없이 큰 파일을 순차적으로 읽는 데 사용되는 커서와 같은 것을 사용하는 것이 더 빠른 방법인지 알고 싶습니다. 내가 보는 방식으로, 커서는 수백만 개의 select
문을 실행하는 것보다 훨씬 빠르게 처리 할 수있는 청크로 데이터를 가져옵니다.
DBI를 보셨습니까? – Mat
당신이 링크 한 방법은 관련이 없습니다/당신이''id = '1', ''2 '', ...을 반복하기위한 허락을 받아들이면 그것을 잘못 읽었습니다. –
데이터를 업데이트 할 값은 무엇입니까? 이미 데이터베이스에있는 것과 관련이 있습니까? 그렇다면 직접 사용하십시오. 그렇지 않은 경우, 새 데이터를 임시 테이블에 삽입 한 후이를 갱신하십시오. – eggyal