Ya tengo algunos millones de filas en mi base de datos. No sabía sobre el tipo de datos UUID de PostgreSQL cuando diseñé mi esquema.
Una de las tablas tiene 16 millones de filas (aproximadamente de 3,5 millones a 4 millones de registros por fragmento), que crece a unos 500 000 registros por día. Todavía tengo el lujo de bajar el sistema de producción durante unas horas si es necesario. No tendré este lujo en una o dos semanas.
Mi pregunta es, ¿valdrá la pena hacerlo? Me pregunto sobre el rendimiento de JOIN, el uso del espacio en disco (el volcado gzip'd completo es 1.25 GiB), cosas de esa naturaleza.
El esquema de la tabla es:
# \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.)