2015-02-04 3 views
-1

나는 다음과 같이 레일에 루비에 raw_sql을 통해 테이블에서 열을 업데이트하기 위해 노력 해왔다,mysql 업데이트 쿼리가 느린가요?

db_connection.execute("update table1 t1 join table2 t2 on t1.s_number = t2.product_id set t1.name = (select name from table3 where mid_size = t2.level)") 

그것의 매우 느리고 복용 너무 많은 시간. SQL을 통해 레일에서 일괄 업데이트를위한 최선의 방법이 있습니까? 내가 ACTIVERECORD에서도한다면 희망이 일어날 것입니다.

더 많은 정보 표 1 락을 갖는 표 2는 2.5 LaCS (락스) 기록

주 의견

+1

이 행해져 Yout 표는 문을 만들 제시해주십시오. – Jens

+0

table1은 55 개 이상의 필드가 있고 table2는 필수 필드가 색인되는 2 개의 필드 만 있습니다. @Jens –

답변

0

그것은 두 테이블에서 인덱스에 완전히 의존을 가지고. 쿼리에 대한 EXPLAIN를 시도 당신이 당신의 테이블 모두에 대한 생성 테이블 코드를 공유하는 경우 그것은 좋은 것입니다 당신에게 통찰력

을 줄 것이다

관련 문제