Auteur | Message |
---|---|
cerise
| Inscrit le : 31/10/2008 |
# Le 06/01/2013 à 10:08 Bonjour |
krucial
| Jean Christophe Inscrit le : 09/03/2005 |
# Le 06/01/2013 à 10:28 J'y connais pas grand chose, mais je pense qu'au niveau perf, mieux vaut 100 petites base qu'une très grosse. JC - Mes sites | Affiliation devis travaux | Cotes voitures anciennes |
Bool
| Olivier Inscrit le : 09/05/2005 |
# Le 06/01/2013 à 10:37 Hello, |
cerise
| Gaël Inscrit le : 31/10/2008 |
# Le 06/01/2013 à 11:00 donc en clair Bool, tu préconises la solution 2 soit une base par client ? |
Bool
| Olivier Inscrit le : 09/05/2005 |
# Le 06/01/2013 à 11:13 Yep, je serais plutôt pour la solution 2, qui «scale» beaucoup mieux dans le temps. daevel@node02:~$ mysql -Be 'show databases' | wc -l Le soucis par contre avec une répartition fixe par «numéro» comme ça, c'est que tu pars du principe que tous les clients auraient le même volume de données & accès. Est-ce vraiment le cas ? Mon client en question était parti là dessus, et du coup on se retrouve avec des machines stockant 20Go de données, et d'autres à plus de 200Go. Coté ressources, «suffit» d'ajuster la puissance de la VM (merci la virtualisation), mais tu te retrouves quand même avec une conf MySQL spécifique à chaque machine, c'est plus chiant à gérer/maintenir. |
cerise
| Gaël Inscrit le : 31/10/2008 |
# Le 06/01/2013 à 11:23 c'est pas faux tu as raison, mais ça me paraît difficile d'anticiper une telle inconnue. |
Bool
| Olivier Inscrit le : 09/05/2005 |
# Le 06/01/2013 à 11:28 Oui dès lors que la répartition est automatique, tu auras le problème... Une solution serait de passer par une table de correspondance, mais la gestion n'est pas forcément aisée et ça fait un hook supplémentaire. |
ddpetit
| Damien Inscrit le : 03/05/2006 |
# Le 06/01/2013 à 11:29 Pourquoi ne pas partir sur du NoSQL qui permettrait de traiter de gros volumes de données. Je n'y connais pas grand chose, j'ai étudié la question de loin car je ne suis pas dans le cas là pour le moment. Y'en a qui connaissent ? Loccasion.com - Vente de voitures d'occasion - Mandataire Auto |
Bool
| Olivier Inscrit le : 09/05/2005 |
# Le 06/01/2013 à 11:51 Le «NoSQL» c'est magnifique quand tu fais du clé valeur... mais c'est vite limité. Donc ça dépend de ton usage, mais si tu as de gros besoin de jointures et group by, tu vas vite être coincé. |
PyRoFlo
| Florent Inscrit le : 09/05/2005 |
# Le 06/01/2013 à 17:12 Clairement, je partirai avec la solution 1, en jouant avec le partitionnement . Selon moi l'argument du cloisonnement des données ne tient pas : il suffit d'utiliser un utilisateur SQL par client, avec les bonnes permissions. |
tonguide
| Jeremy Inscrit le : 09/05/2005 |
# Le 06/01/2013 à 17:28 Sinon grouper les clients sur la même table avec ID du client à chaque ligne ? |
caaptusss
| Jérémy Inscrit le : 25/09/2007 |
# Le 06/01/2013 à 17:32 Coté technologie, pensez aussi à memcache, déployé notamment dans le cas ou vous avez plusieurs centaines de lectures sur vos bases chaque secondes. |
Bool
| Olivier Inscrit le : 09/05/2005 |
# Le 06/01/2013 à 18:10 C'est vrai que si on parle d'un petit volume, comme l'indique Pyroflo, ça vaut pas le coup de se prendre la tête. Avoir une idée de la volumétrie aiderait. Déjà, à moins de 50Go de données, je ne vois aucune raison de scinder. |
PyRoFlo
| Florent Inscrit le : 09/05/2005 |
# Le 06/01/2013 à 19:03
Bool a dit :Par contre pour la sécurité, MySQL ne gère pas les droits par ligne. Donc un client, même avec un compte spécifique, aura accès à toutes les lignes d'une table sinon rien. Généralement c'est loin d'être super efficace coté sécurité. Exact, j'ai un peu mélangé avec Oracle. A voir selon la criticité du projet si c'est réellement nécessaire. |
cerise
| Gaël Inscrit le : 31/10/2008 |
# Le 07/01/2013 à 09:18 pour l'exemple, prenez une plateforme de blog ou chacun aurait son blog ou chacun aurait son blog avec sa base |
Bool
| Olivier Inscrit le : 09/05/2005 |
# Le 07/01/2013 à 09:31 Ok, donc on est plutôt sur du très faible volume ? Tout mettre dans une base est du coup moins propre à l'usage non ? Bof, pour le coup je vois pas trop. Comment vous réglez en outre la question des tables avec autoincremente et des champs uniques ? Quelle question ? Les autoincrement restent tels quels, et pour les clés d'unicité tu y ajoutes l'idClient si besoin. Le partitionnement peut quelque chose à ce niveau ? Du tout, au contraire le partitionnement est allergique avec les clés d'unicités. |
nayluge
| Cyril Inscrit le : 09/01/2008 |
# Le 10/01/2013 à 00:23 Je vote aussi Solution 2 pour : |
Bool
| Olivier Inscrit le : 09/05/2005 |
# Le 10/01/2013 à 01:16 Y a VM et VM. Quand il commence à y avoir plusieurs dizaines de Go de RAM et de coeurs, avec un stockage qui tient la root, ça permet d'avoir un serveur MySQL redondé, sans avoir recours à la réplication bancale, ou nécessiter du MySQL Cluster. |
nayluge
| Cyril Inscrit le : 09/01/2008 |
# Le 10/01/2013 à 01:51 C'est pas les coeurs ou la ram que je blame, c'est les perfs disques ... |
Bool
| Olivier Inscrit le : 09/05/2005 |
# Le 10/01/2013 à 09:07 bah pour les perfs disque, ça dépend de l'infra de stockage. Si le stockage utilise des technos «haut de gamme» (contrôleur avec writeback mémoire, système avec writeback ssd, gros cache mémoire, disques SAS, etc), ça peut très bien se passer. |
Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.
© MHN - Tous droits réservés | CNIL N°844440 | 23/11/2024 15:11:19 | Généré en 15.16ms | Contacts | Mentions légales |