두 테이블이 있습니다. 총계 데이터 및 Distinct_S1.큰 MySql 테이블에서 값의 빈도 분포를 얻는 효율적인 방법
Total_Data에는 350 만 개의 행이 있습니다. 입력란 : "S1", "S2", "S3", "S4"
Distinct_S1에는 100 만 개의 행이 있습니다. 입력란 : 'S1', '빈도' 의 "S1"Distinct_S1은 의 "S1"에서 발생하는 모든 고유 한 값으로 구성됩니다. Total_Data. 손
과제 : 의 "주파수"Distinct_S1 S1 = 'XXYY'의 (가정)이 회 'XXYY'의 개수로 구성한다 Total_Data 일어난다.
나는 손에서 작업을 수행하기 위해 (MySQLdb 수입) 파이썬 스크립트 내에서 다음 쿼리를 사용 :cur.execute("update Distinct_S1 set frequency=(select count(*) from Total_Data where S1='%s') where S1='%s'"%(S1_val, S1_val)
위의 쿼리가 잘 작동하지만 시간이 많이 걸릴 것으로 보인다. 같은 것을 달성하는 다른 빠른 방법이 있습니까?
위 쿼리를 실행했습니다. 13 분 후, 끝났어! 고마워요! 추신 나는 업데이 트가 삽입보다 비싸고 '파이썬 - 투 - 마이 SQL 투 파이썬 전환'이 많은 시간을 소비했을 수도 있다고 생각합니다. – yang5