2012-08-22 2 views
3

나는 67M, 126000 행의 xls 파일을 가지고 있으며 가능한 한 빨리 sqlite 데이터베이스로 가져 오려고합니다.읽을 방법은 빨리 뛰어나다?

  1. 를 사용하여 데이터베이스에 삽입 할 Excel 및 sqlite3를을 읽을 수 xlrd;

    는 지금은 파이썬으로 구현되는 두 개의 솔루션이 (비용은 약 28s입니다)

  2. 데이터베이스에 삽입하려면 Excel과 sqlite3을 읽는 데 adodbapi를 사용하십시오. 나는 당신이 다른 솔루션을 가지고 20s.Do 범위 내에서 실시 할 수 있기를 바랍니다

을 (그것은 약 33S 비용)? 프로그래밍 언어는 Python 또는 C/C++이어야합니다. Python 프로그램에 프로그래밍 언어를 통합하고자하기 때문입니다.

+1

CSV로 내보내고 읽을 수 있습니까? 확실하지는 않지만 어쩌면 더 빠를 수 있을까요? – javex

+0

우리가 약 126 k 행을 돌고 있다고 생각하면 훨씬 빨리 할 수 ​​있을지 의심 스럽습니다. 하지만 javex와 동의하십시오. 먼저 CSV로 가져 오십시오. csv에서로드하고 추가 활동 및 현실 확인을위한 벤치 마크로 사용하십시오. – schacki

+0

[LibreOffice] (http://www.libreoffice.org/)를 사용하여 csv로 변환 할 수 있습니다. 이 봐 ([http://stackoverflow.com/a/11749459/1117641) –

답변

0

LibreOffice을 사용하십시오. 일괄 처리 모드로 변환 할 수 있습니다.

subprocess.call(['loffice', '--invisible', '--convert-to', 'csv', file]) 

어쩌면 시도해 볼 가치가 있습니까?

+0

마침내 내 솔루션 2 (엑셀 읽으려면 adodbapi 사용) 최적화했습니다. _getValue() _SQLrow 메서드는 항상 값을 변환하기 때문에 내 프로그램에서는 도움이되지 않습니다. 그래서 난 그냥 원시 데이터를 SQL에서 (ado_results _SQLrows 특성). 그것은 내 프로그램을 빠르게 실행하게 않습니다. –

관련 문제