RĂ©sumĂ© du toot: Rambling de base de donnĂ©es et idĂ©es qui se baladent ci et lĂ  

Bon... J'aime les bases de données :p

Je veux 10'000 entrées aléatoires. Méthode naïve, ORDER BY RANDOM(). Sur une grosse table, c'est lent comme pas permis.

Alors on essaye la façon SELECT contents FROM truc WHERE id IN(sous-requĂȘte avec ORDER BY RANDOM()). C'est beaucoup mieux, on passe de 800ms Ă  400ms... Mais bon, ça fait beaucoup je trouve O.O

Autre solution, créer un schéma et balancer les entrées dans des tables par guilde discord.

Avantage:

  • Je peux utiliser TABLESAMPLE SYSTEM_ROWS(10000) sans me prendre la tĂȘte.

Inconvénient:

  • Pourquoi j'aime pas concatĂ©ner des trucs externes dans des requĂȘtes ? Je sais bien que les IDs de guildes Discord sont des entiers mais, au fond de moi, j'aime quand mĂȘme pas concatĂ©ner ça 😂

  • Si je dois modifier la structure de la table d'origine (improbable mais soit), je dois le faire sur toutes les tables. A moins que Postgres offre une solution Ă©lĂ©gante au problĂšme :)

Suivre

re: RĂ©sumĂ© du toot: Rambling de base de donnĂ©es et idĂ©es qui se baladent ci et lĂ  

En sachant que ORDER BY RANDOM() oblige de lire toute la table, de la trier par random et le LIMIT qui dégage tout... Voilà voilà

· · 0 · 0 · 0
Inscrivez-vous pour prendre part Ă  la conversation
Miaou !

Miaou est une instance Mastodon faisant partie des CHATONS avec une forte orientation geek aimant l'open source, le libre et les chats