Concept de partitionnement d'une base de données

Fermé
pulls Messages postés 136 Date d'inscription mercredi 30 décembre 2009 Statut Membre Dernière intervention 13 septembre 2023 - 1 oct. 2018 à 18:09
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 3 oct. 2018 à 09:56
Bonjour,

Nous voulons migrer des bases de données distribuées ( cinq), vers une seule base de données centralisée, ce qui implique un volume de données énorme dans certaines tables. La table tickets par exemple, va enregistrer des millions de tickets par jour. Chaque ticket représente un gain qu'il faut payer au parieur, si la date du ticket n’est pas vieux de plus de 5 jours ( la date de validité d'un ticket est donc de 5 jours).

Parmi les millions de tickets qui seront enregistrés dans la table tickets, et que certains sont déjà clôturés, je voudrais trouver un moyen d' accéder aux tickets qui sont encore valides via l'application , sans que l'utilisateur ressente une lenteur. L'utilisateur saisi le N° de ticket, la date du ticket et la valeur du ticket s'affiche , il clique sur un bouton Valider, pour le payer.

Cette table est indexée sur le n° du ticket et la date du ticket. Je viens de découvrir le concept de partitionnement des tables volumineuses. Je voudrais savoir si en partitionnant ma table suivant la clé Mois, ça peut accélérer les recherches des tickets non clôturés dans cette table.

Aidez moi S'il vous plait.





1 réponse

yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
Modifié le 1 oct. 2018 à 20:05
bonjour,
as-tu un seul index sur la combinaison n° du ticket et date du ticket?
les numéros de ticket sont-ils réutilisés chaque jour, ou bien sont-ils uniques?
les tickets périmés sont-ils gardés dans la base de données?
tes recherches sont-elles lentes, ou cherches-tu une solution à un problème qui n'existe peut-être pas?
es-tu satisfait des performances des insertions dans la base?
0
pulls Messages postés 136 Date d'inscription mercredi 30 décembre 2009 Statut Membre Dernière intervention 13 septembre 2023 3
2 oct. 2018 à 16:57
Bonjour,
- je n'ai pas d'index sur la combinaison n° du ticket et date du ticket , mais j'ai une clé primaire sur le champ idGain qui est numérique et incrémental.
- Il ne peut pas avoir 2 numéro de tickets identiques à une même date , mais on peut avoir un même numéro de tickets sur 2 dates différentes.
- Les tickets périmés sont gardés dans la base de données jusqu'en fin d'année et archivés après le 5 janvier du mois de l'année suivante , délai de validité des tickets de l'année antérieure.
- Les recherches ne sont pas lentes dans les bases de données distribuées. Le formulaire de recherche et de validation de tickets pointe sur une vue qui filtre les tickets valides et je ne sais pas si ce schéma sera efficace dans une base de données centralisée où j'aurai à une même date près d'un million de ticket.
- je suis satisfait des performances des insertions dans la base, mais quand il y a beaucoup de tickets valides dans la base ( parce qu'il y a eu beaucoup de gagnants), l'utilisateur ressent un peu de lenteur dans sa base régionale.Et je me demande ce qui arrivera quand je vais centraliser 5 régions dans une même base et qu'il y ait beaucoup de gagnants .


Merci de vouloir m'aider
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477 > pulls Messages postés 136 Date d'inscription mercredi 30 décembre 2009 Statut Membre Dernière intervention 13 septembre 2023
2 oct. 2018 à 17:38
Tu avais écrit "Cette table est indexée sur le n° du ticket et la date du ticket.", et ensuite: "je n'ai pas d'index sur la combinaison n° du ticket et date du ticket". Que croire?
.
Les tickets périmés (après 5 jours) sont-ils gardés dans la même table que les tickets valides? Moi j'envisagerais de changer cela, et de les déplacer vers une autre table.
.
Le concept de région est-il toujours valable? Les tickets sont-ils valables dans une seule région?
0
pulls Messages postés 136 Date d'inscription mercredi 30 décembre 2009 Statut Membre Dernière intervention 13 septembre 2023 3
2 oct. 2018 à 21:55
Excusez moi, après vérification , je me suis rendu compte que la table n'est pas indexé sur sur le n° du ticket et la date du ticket, mais qu'il existe plutôt un champ idGain qui est la clé primaire.
Un ticket émis est valable pour toutes les 5 régions et unique sur tout le pays à la même date. mais pour qu'un ticket émis dans une région soit payé dans un autre région, on doit appelé au téléphone pour s’assurer que le ticket est bien valable; et c'est justement pour éviter ces appels que nous voulons centralises toutes les bases de données.
Les tickets périmés (après 5 jours) sont-ils gardés dans la même table que les tickets valides? Moi j'envisagerais de changer cela, et de les déplacer vers une autre table.-> Nous avons créé une vue pour extraire les tickets valides (inférieur ou égal à 5 jours), le formulaire de recherche de ticket pointe sur cette vue . Ça ne sera pas efficace alors?

L'idée de déplacer les tickets périmés vers une autre table est intéressante, mais un peu radicale; puisque j’aurais besoin de 2 tables et d'une vue pour agréger les 2 tables pour des besoins statistiques. En indexant le n° du ticket et la date du ticket, ça ne pourra pas accélérer les recherches des tickets? Le concept de partitionnement de la table ne peut pas m'aider ici?
Merci
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477 > pulls Messages postés 136 Date d'inscription mercredi 30 décembre 2009 Statut Membre Dernière intervention 13 septembre 2023
3 oct. 2018 à 09:56
Toutes ces options doivent être testées sur une population et une charge de travail représentative.
Chaque option a des avantages et des inconvénients.
Tu as plusieurs activités (insertion, recherche et mise à jour, statistiques, archivage, ...). Une modification peut être avantageuse pour une activité, et désavantageuse pour une autre. Par exemple, ajouter des index va ralentir l'insertion et l'archivage, puisqu'il faudra gérer ses index.
Tu t’inquiètes d'utiliser une vue pour faire des statistiques, alors que tu es satisfait d'utiliser une vue dans toutes tes recherches, dont les performances sont plus importantes: pourquoi?
A propos de statistiques: si les données ne sont plus modifiées après 5 jours, pourquoi refaire des calculs statistiques avec les données plus anciennes?
0