Ho già qualche milione di righe nel mio database. Non sapevo del tipo di dati UUID PostgreSQL quando ho progettato il mio schema.
Una delle tabelle ha 16 milioni di righe (da circa 3,5 a 4 milioni di record per frammento), con una crescita di circa 500.000 record al giorno. Ho ancora il lusso di abbattere il sistema di produzione per alcune ore, se necessario. Non avrò questo lusso tra una o due settimane.
La mia domanda è: varrà la pena farlo? Mi chiedo delle prestazioni JOIN, l'uso dello spazio su disco (il dump completo di gzip'd è 1,25 GiB), cose del genere.
Lo schema della tabella è:
# \d twitter_interactions
Table "public.twitter_interactions"
Column | Type | Modifiers
-------------------------+-----------------------------+-----------
interaction_id | character(36) | not null
status_text | character varying(1024) | not null
screen_name | character varying(40) | not null
twitter_user_id | bigint |
replying_to_screen_name | character varying(40) |
source | character varying(240) | not null
tweet_id | bigint | not null
created_at | timestamp without time zone | not null
Indexes:
"twitter_interactions_pkey" PRIMARY KEY, btree (interaction_id)
"twitter_interactions_tweet_id_key" UNIQUE, btree (tweet_id)
"index_twitter_interactions_on_created_at" btree (created_at)
"index_twitter_interactions_on_screen_name" btree (screen_name)
Triggers:
insert_twitter_interactions_trigger BEFORE INSERT ON twitter_interactions FOR EACH ROW EXECUTE PROCEDURE twitter_interactions_insert_trigger()
Number of child tables: 9 (Use \d+ to list them.)