From 6f837f5e88f6c3164fb1cbaa789d75d84e136608 Mon Sep 17 00:00:00 2001 From: Rob Mulholand Date: Wed, 19 Jun 2019 14:59:21 -0500 Subject: [PATCH] Add indexes to columns used in plugin joins - Will probably want to update these depending on what's commonly used in join/where statements. --- db/migrations/00023_create_headers_table.sql | 9 ++++- ..._create_header_sync_transactions_table.sql | 38 ++++++++++++------- ...0027_create_header_sync_receipts_table.sql | 8 ++++ db/schema.sql | 35 +++++++++++++++++ 4 files changed, 74 insertions(+), 16 deletions(-) diff --git a/db/migrations/00023_create_headers_table.sql b/db/migrations/00023_create_headers_table.sql index 82a2451f..f58e8eb5 100644 --- a/db/migrations/00023_create_headers_table.sql +++ b/db/migrations/00023_create_headers_table.sql @@ -12,9 +12,14 @@ CREATE TABLE public.headers UNIQUE (block_number, hash, eth_node_fingerprint) ); --- Index is removed when table is -CREATE INDEX headers_block_number ON public.headers (block_number); +CREATE INDEX headers_block_number + ON public.headers (block_number); +CREATE INDEX headers_block_timestamp + ON public.headers (block_timestamp); -- +goose Down +DROP INDEX public.headers_block_number; +DROP INDEX public.headers_block_timestamp; + DROP TABLE public.headers; diff --git a/db/migrations/00026_create_header_sync_transactions_table.sql b/db/migrations/00026_create_header_sync_transactions_table.sql index 469f8f85..253ad464 100644 --- a/db/migrations/00026_create_header_sync_transactions_table.sql +++ b/db/migrations/00026_create_header_sync_transactions_table.sql @@ -1,19 +1,29 @@ -- +goose Up -CREATE TABLE header_sync_transactions ( - id SERIAL PRIMARY KEY, - header_id INTEGER NOT NULL REFERENCES headers(id) ON DELETE CASCADE, - hash VARCHAR(66), - gas_limit NUMERIC, - gas_price NUMERIC, - input_data BYTEA, - nonce NUMERIC, - raw BYTEA, - tx_from VARCHAR(44), - tx_index INTEGER, - tx_to VARCHAR(44), - "value" NUMERIC, - UNIQUE (header_id, hash) +CREATE TABLE public.header_sync_transactions +( + id SERIAL PRIMARY KEY, + header_id INTEGER NOT NULL REFERENCES headers (id) ON DELETE CASCADE, + hash VARCHAR(66), + gas_limit NUMERIC, + gas_price NUMERIC, + input_data BYTEA, + nonce NUMERIC, + raw BYTEA, + tx_from VARCHAR(44), + tx_index INTEGER, + tx_to VARCHAR(44), + "value" NUMERIC, + UNIQUE (header_id, hash) ); +CREATE INDEX header_sync_transactions_header + ON public.header_sync_transactions (header_id); + +CREATE INDEX header_sync_transactions_tx_index + ON public.header_sync_transactions (tx_index); + -- +goose Down +DROP INDEX public.header_sync_transactions_header; +DROP INDEX public.header_sync_transactions_tx_index; + DROP TABLE header_sync_transactions; diff --git a/db/migrations/00027_create_header_sync_receipts_table.sql b/db/migrations/00027_create_header_sync_receipts_table.sql index 842527f4..eac9e145 100644 --- a/db/migrations/00027_create_header_sync_receipts_table.sql +++ b/db/migrations/00027_create_header_sync_receipts_table.sql @@ -14,6 +14,14 @@ CREATE TABLE header_sync_receipts UNIQUE (header_id, transaction_id) ); +CREATE INDEX header_sync_receipts_header + ON public.header_sync_receipts (header_id); + +CREATE INDEX header_sync_receipts_transaction + ON public.header_sync_receipts (transaction_id); -- +goose Down +DROP INDEX public.header_sync_receipts_header; +DROP INDEX public.header_sync_receipts_transaction; + DROP TABLE header_sync_receipts; diff --git a/db/schema.sql b/db/schema.sql index 763b5373..fdd00130 100644 --- a/db/schema.sql +++ b/db/schema.sql @@ -1308,6 +1308,34 @@ ALTER TABLE ONLY public.watched_logs CREATE INDEX block_id_index ON public.full_sync_transactions USING btree (block_id); +-- +-- Name: header_sync_receipts_header; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX header_sync_receipts_header ON public.header_sync_receipts USING btree (header_id); + + +-- +-- Name: header_sync_receipts_transaction; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX header_sync_receipts_transaction ON public.header_sync_receipts USING btree (transaction_id); + + +-- +-- Name: header_sync_transactions_header; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX header_sync_transactions_header ON public.header_sync_transactions USING btree (header_id); + + +-- +-- Name: header_sync_transactions_tx_index; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX header_sync_transactions_tx_index ON public.header_sync_transactions USING btree (tx_index); + + -- -- Name: headers_block_number; Type: INDEX; Schema: public; Owner: - -- @@ -1315,6 +1343,13 @@ CREATE INDEX block_id_index ON public.full_sync_transactions USING btree (block_ CREATE INDEX headers_block_number ON public.headers USING btree (block_number); +-- +-- Name: headers_block_timestamp; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX headers_block_timestamp ON public.headers USING btree (block_timestamp); + + -- -- Name: node_id_index; Type: INDEX; Schema: public; Owner: - --