aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2020-01-19 13:43:21 +0100
committerMartin Polden <mpolden@mpolden.no>2020-01-19 13:43:21 +0100
commit0b94f7424e16965486a106bb44a252feb12f295e (patch)
treef785a1d20ce8ae8915e1421ebd4b04e07d1d638d
parentda254858a8e21f0b15b1bd0af6ef27dd8753fb3c (diff)
Improve readLog performance
benchmark old ns/op new ns/op delta BenchmarkReadLog-4 42074389 4910733 -88.33%
-rw-r--r--sql/sql.go2
-rw-r--r--sql/sql_test.go13
2 files changed, 15 insertions, 0 deletions
diff --git a/sql/sql.go b/sql/sql.go
index 55270b0..f120b5e 100644
--- a/sql/sql.go
+++ b/sql/sql.go
@@ -54,6 +54,8 @@ CREATE TABLE IF NOT EXISTS log_rr_answer (
FOREIGN KEY (rr_answer_id) REFERENCES rr_answer(id)
);
+CREATE INDEX IF NOT EXISTS log_rr_answer_log_id ON log_rr_answer(log_id);
+
CREATE TABLE IF NOT EXISTS cache (
id INTEGER PRIMARY KEY,
key INTEGER NOT NULL,
diff --git a/sql/sql_test.go b/sql/sql_test.go
index 6843d3d..72a4df8 100644
--- a/sql/sql_test.go
+++ b/sql/sql_test.go
@@ -218,3 +218,16 @@ func TestReadLogStats(t *testing.T) {
t.Errorf("readLogStats() = (%+v, _), want (%+v, _)", got, want)
}
}
+
+func BenchmarkReadLog(b *testing.B) {
+ c := testClient()
+ for i := 0; i < 1000; i++ {
+ if err := c.writeLog(time.Now(), net.ParseIP("127.0.0.1"), false, 1, "example.com.", "192.0.2.1"); err != nil {
+ b.Fatal(err)
+ }
+ }
+ b.ResetTimer()
+ for n := 0; n < b.N; n++ {
+ c.readLog(1000)
+ }
+}