내 Java 응용 프로그램에서 하드 디스크에 큰 테이블을 저장해야하므로 영구적으로 저장해야합니다.배열을 SQLite-Databse에 배열로 저장
내 첫 번째 시도는 다음과 같이이었다 : 은 (내가 & J 300.000과 이상으로 올라갈 수 있습니다, 그래서 300.000^2 번 항목의 배열, 충돌 내 시스템을 가지고있다.)
stmt.executeUpdate("DROP TABLE IF EXISTS calculations;");
stmt.executeUpdate("CREATE TABLE calculations (factorA, factorB, result);");
double temp = 0;
for (i = 0; i < datasource.size(); i++) {
for (int j = 0; j < datasource.size(); j++) {
if (i != j) {
temp = calc(datasource.get(i),datasource.get(j));
stmt.execute("INSERT INTO calculations (factorA, factorB, result) VALUES ('"+i+"','"+j+"','"+temp+"')");
}
}
}
이제 이것은 문자열 인 SQL 명령 때문에 극단적 인 느린 작업을 수행합니다.
내 새로운 추측은 아마도 10.000 i의 결과를 먼저 계산 한 다음 그 결과를 한 단위로 저장하는 것이 좋습니다. 데이터 베이스.
하지만 구현하기 전에 누구에게 더 좋은 아이디어가 있습니까? 데이터베이스 사용은 필수적인 것은 아니며 쉽게 액세스하고 구현하기가 쉽습니다.
감사합니다.
대량 삽입을 트랜잭션으로 수행해야합니다. https://www.sqlite.org/lang_transaction.html - SQLite 엔진에서 이들을 큐에 넣고 트랜잭션이 완료되었다고 표시하면 하나씩 처리하는 대신 번개를 빨리 처리합니다. –
빠른 쓰기 또는 빠른 읽기가 필요합니까? 얼마나 많은 행을 추출할까요? factorA + factorB의 구성이 색인으로 사용 가능합니까? – elbuild
사실 나는 빠른 쓰기와 읽기가 모두 필요하지만 처음에는 글쓰기가 필요합니다. – goetzmoritz