레일 app을 개발 중입니다. 나는 다음과 같이 데이터베이스에 데이터를 다음 2,000,000 데이터를 개최 배열을 사용하여 삽입 할 : 나는이 코드를 실행하면배열의 큰 데이터
large_data = Get_data_Method() #get 2,000,000 raw data
all_values = Array.new
large_data.each{ |data|
all_values << data[1] #e.g. data[1] has the format "(2,'john','2002-09-12')"
}
sql="INSERT INTO cars (id,name,date) VALUES "+all_values.join(',')
ActiveRecord::Base.connection.execute(sql)
, 그것은 large_data.each{...}
의 지점에 긴 시간이 오래 걸립니다. 실제로 나는 아직도 그것을 끝내기를 여전히 기다리고있다. (그것은 이미 1 시간 동안 실행되어 아직 large_data.each{...}
부분을 끝내지 못했다.)
배열 수없는 루비 배열의 요소 수가 너무 많아 2,000,000 요소입니까? 또는 루비 배열은 그 많은 요소를 수용 할 수 있으며, 그렇게 오래 기다리는 것이 합리적입니다. 나는 위의 일을 한 이유
내가 MySQL 데이터베이스에 큰 데이터 삽입 시간을 단축하기 위해 SQL에 대량 삽입를 사용하고 싶습니다, 그래서 하나의 INSERT INTO
문을 사용하고자하기 때문에, 즉이다. 이것이 나쁜 디자인이라면, 나에게 더 좋은 방법을 권할 수 있습니까?
사소한 질문 : 당신의 모든 라인 사이에 빈 줄을 남겨 할 암호? – tokland
이 데이터는 어디에서 가져 옵니까? 왜 그것을'large_data'에서'all_values'로 옮깁니 까? –