diff --git a/db/db_test.go b/db/db_test.go
index ee003ca417b25ff96732a89b815f90fe6afc7fdd..dd5d82f10371b42da9243813449a33c6c37f55df 100644
--- a/db/db_test.go
+++ b/db/db_test.go
@@ -19,6 +19,9 @@ const (
 	// How many events to fill up the db, test/bench cases.
 	manyEventsTest  = 100000
 	manyEventsBench = 1000000
+
+	// When writing events to the db, do it in batches of this size.
+	writeBatchSize = 1000
 )
 
 func randomIP() string {
@@ -151,10 +154,9 @@ func runWriteBench(b *testing.B, driver string) {
 	}
 	defer db.Close()
 
-	// Chunks of 100.
-	chunkSize := 1000
-	nchunks := b.N / chunkSize
-	events := randomEvents(chunkSize)
+	// Write events in chunks.
+	nchunks := b.N / writeBatchSize
+	events := randomEvents(writeBatchSize)
 
 	b.ResetTimer()
 
@@ -188,9 +190,10 @@ func runReadBenchmark(b *testing.B, driver string, eventsPerIP int, threadCounts
 
 	// Write a lot of events just to bulk up the database, but
 	// also write a couple of records for a known IP, that we're
-	// going to read in the benchmark.
-	n := manyEventsBench
-	db.AddAggregate(randomEvents(n))
+	// going to read in the benchmark. Do it in batches.
+	for i := 0; i < manyEventsBench; i += writeBatchSize {
+		db.AddAggregate(randomEvents(writeBatchSize))
+	}
 
 	// For a bunch of random IPs, add a known (possibly large)
 	// number of events.