이 질문은 다음과 유사합니다 : 나는 위키 피 디아의 XML 덤프에서 인덱스 특정 기능을 가지고스칼라 삽입 2.0 슬릭 및 sqlite3를 속도와 PRAGMA
- SQLite insert speed slows as number of records increases due to an index
- Improve INSERT-per-second performance of SQLite?
. 파싱이 빠릅니다. 그러나 삽입이 느립니다.
인덱싱을 끄면 속도가 두 배로 향상되었습니다. 이 같은
I 일괄 삽입 :
articles.grouped(5000)
.foreach {
batch: IterableView[(Article, List[Category], List[Link]), Iterable[_]] =>
//Save each batch in one transaction
database withTransaction {
implicit session =>
for(i <- batch) {
articles += i._1
categories ++= i._2
links ++= i._3
}
}
}
나는 journal_mode = MEMORY
과 synchronous = off
가 삽입 속도를 빠르게 읽어 보시기 바랍니다. 나는 이것을 매끄럽게 어떻게 설정합니까? 연결 풀로 c3p0을 사용하고 PRAGMA journal_mode = MEMORY
을 preferredTestQuery
에 추가했습니다. 이 옵션을 설정하는 것이 올바른 방법이라고 생각하지 않습니다.
도움 주셔서 감사합니다.
이것은 [자주 묻는 질문] (HTTP이다. org/faq.html # q19); 모든 삽입에 대해 하나의 트랜잭션을 사용해야합니다. –
이것은'withTransaction'이하는 일이나해야 할 일입니다. 모든 Wikipedia 기사에 대한 거래 하나가 너무 많을 수 있습니다. – Karsten
"너무 많이"란 무엇을 의미합니까? 여러 트랜잭션이 확실히 너무 느립니다 ... –