일부 탭을 탭으로 구분 된 값에서 가져온 후 일련의 업데이트를 수행하고 있습니다. 데이터에는 내가 좋아하지 않는 형식의 날짜가 있습니다. 나는 그들을 문자열로 가져 와서 MySQL 날짜와 같은 형식으로 변환 한 다음 컬럼을 변환합니다. 또는 때로는 아니지만, 문자열 인 경우에도 MySQL 날짜와 같아지기를 원합니다.r 표현 또는 대체 쿼리의 성능이 우수할까요?
그들은 '1/4/2013 12:00:00 AM'또는 '11/4/2012 2:37:45 PM '처럼 시작합니다.
이 항목을 '2013-01-04'로 변경합니다 (일반적으로 원래 스키마에서 날짜 만 명확하게 지정해도 시간이 있기 때문에). '2012-11-04 14:37:45'.
나는 등을 사용하고 있습니다. 그리고 이것은 인덱스를 사용하지 않습니까? 와우. 그거 끔찍해.
그러나 이미 각 열에 대해 서로 다른 사례 ('1/7', '2/13', '11/2 ', '12/24')를 처리하기 위해 4 개의 업데이트를 사용해야합니다. 만약 내가 이와 같이 사용하면, 각 열에 대해 16 가지 다른 업데이트가 걸릴 수 있습니다. ...
그리고 내가 올바르게 보았을 때, rlike 표현식에서 위치 매개 변수를 얻을 수 없습니다. 알다시피, 괄호 안에 $ 1 또는 $ 2가되는 표현식의 일부가 ....
그래서 perl로 tsv 파일을 사전 처리하는 것처럼 빨라지는 것처럼 보입니다. 정말? 와우. 다시 말하지만, 이것은 빤다.
다른 제안 사항이 있으십니까? 데이터를 가져올 때마다 3 시간이 걸릴 수 없습니다.
수도 있습니다. 나는 Zawinski 인용문을 좋아한다. –
글쎄, str_to_date() 함수도 그렇게 느리지 않았 으면 좋겠다. 8,143,764 개의 레코드를 업데이트하는 데 4 분 29.5 초가 걸립니다. 그 문자열에 대한 인덱스가 실제로 어떤 것도 속도를 낼 수 없다는 것이 합리적이라고 생각합니다. str_to_date를 더 빠르게 만드는 방법이 있는지 궁금합니다. 이 컴퓨터에 더 많은 RAM이 필요하지만 다른 것을 생각할 수는 없습니다. –
Perl과 Date :: Parse로 시도해보고 원시 데이터를 적절한 MySQL 날짜 형식으로 전처리하는 것이 더 빠르는지 확인하십시오. –