J'ai déjà quelques millions de lignes dans ma base de données. Je ne connaissais pas le type de données PostgreSQL UUID lorsque j'ai conçu mon schéma.
L'une des tables contient 16 millions de lignes (environ 3,5 millions à 4 millions d'enregistrements par fragment), augmentant à environ 500 000 enregistrements par jour. J'ai encore le luxe de démonter le système de production pendant quelques heures si nécessaire. Je n'aurai pas ce luxe dans une ou deux semaines.
Ma question est la suivante: cela vaudra-t-il la peine de le faire? Je me pose des questions sur les performances de JOIN, l'utilisation de l'espace disque (le vidage gzip complet est de 1,25 Gio), des choses de cette nature.
Le schéma de table est:
# \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.)