Dois-je utiliser une BDD externe ? [Résolu]

Bonjour à tous,

Je m'apprête à réaliser un logiciel de gestion de commerce pour mon premier client (gestion de la clientèle, du stock, tickets de caisse, …) et les 40 Go de stockage disponibles sur mon VPS devraient être largement suffisants.

Cependant, je me demande s'il y a une raison pour laquelle il serait conseillé d'utiliser une BDD séparée de mon VPS ? Peut-être au niveau de la robustesse ou de la vitesse d'accès aux données…
Ou alors gérer une BDD sur mon VPS directement est une solution acceptable ?

Je compte la mettre en place moi-même en installant ce qu'il faut sur le VPS mais je sais qu'il existe des services de stockages spécifiques sur OVH, donc je me pose la question.

Je vous remercie d'avance !

Hello,

Perso je ne prendrai pas une bdd externe.
Par contre si c'est du dev maison j'ai un conseil en tant que sysadmin, bosse les caches au maximum :slight_smile:
Théoriquement le SGBD sert à structurer les datas, mais après pour la consultation on passe sur du cache, comme redis. Dans un monde merveilleux on ne devrait jamais faire 2x la même requête sur le SGBD si elle doit donner le même résultat, le cache sert à ça.

Mais pour en revenir au sujet de départ, à mes yeux il faut rester sur le VPS pour tout stocker, ce sera + simple. Tant que les backups sont bien fait, fiables, et surtout avec une copie sur un autre serveur. Avec tout ça, tout devrait aller pour le mieux.

Salut,
D'abord, merci beaucoup pour ta réponse ! :slight_smile:

Je vais me documenter au sujet du cache. Je suis encore étudiant (je commence un master l'année prochaine) donc si tu as d'autres bons conseils pratiques ou des suggestions quelconques (de librairies, frameworks ou autre) je suis preneur !!

C'est bien noté au sujet du VPS, ça me semblait aussi une bonne façon de faire…

Je ne suis pas dev, je ne vais pas pouvoir donner de conseil spécifique à ce métier à part entière.
Juste garde bien à l'esprit qu'interroger le SGBD est bcp + coûteux que d'interroger un cache (filecache / redis / memcached / ..). Par conséquent tout l'objectif du dev est d'aller voir le SGBD le moins souvent possible et de stocker les réponses de façon + simple à récupérer.
Tout le soucis après avec un cache étant de le tenir à jour. Soit tu rebuild ton cache directement quand tu as une modif, soit tu purges ton cache et tu le rebuild à la prochaine demande.

Mais je suis étonné de voir qu'un étudiant qui démarre un master n'ait pas étudié le cache avant… C'est des études de dev ? Le cache c'est la base quand on veut de bonnes perfs, et surtout une appli qui scale bien avec l'activité.

Car comme je le disais, interroger le SGBD reste une opération assez lourde. ça peut passer crème avec 3/4 users en même temps, voir 10, mais quand on passe à 100, 1000 la moindre requête sur une page est à multiplier par le nbr d'users…
Or demander 1x une requête au SGBD, puis demander à redis 999x ce n'est pas du tout la même vitesse de traitement et l'impact sur le système que de demander 1000X la même chose au SGBD… Et le cache SQL n'est pas franchement ce qu'il y a de + efficace.

Après sûr que sur une petite appli maison, pour la TPE du coin ça n'aura probablement pas un énorme impact. Même si sur certains traitement lourd on ressentira déjà une différence.

Je suis en 3e dans une université en sciences informatiques (sans spécialisation pour le moment); j'ai bien entendu déjà entendu parler du principe de cache à plein de niveaux différents, je n'ai juste pas encore eu l'occasion de l'appliquer à celui des bases de données (on a eu un cours d'introduction aux bases de données l'an dernier mais certains concepts ont juste été survolés), donc je me demandais si tu avais des applications concrètes de caching à me conseiller.

Merci pour tes conseils et tes réponses complètes en tout cas, j'en prends bonne note :slight_smile:

redis est une excellente appli pour le cache.
Très rapide, on peut s'y connecter en rzo (pour un cache centralisé entres plusieurs frontaux web par exemple). Système de master/slave aussi (pas testé). Ce qui permet par exemple d'avoir un redis centralisé où l'on va écrire mais on va lire sur un redis local sur l'instance.

Memcached est très proche, mais avec moins de fonctionnalités.


Sinon un simple filecache déjà (en dehors du documentroot, ou bien ajouter un .htaccess pour interdire l'accès au dossier) peut déjà faire des miracles. Un mini exemple ici : https://thisinterestsme.com/php-cache-sql-filesystem/
Là c'est en PHP, mais le principe reste le même quelque soit le langage utilisé.

[EDIT]
Si le projet est en PHP j'ai trouvé ça en cherchant rapidement, no idea de ce que ça vaut, mais si ça peut éviter d'écrire son propre module de cache…
Même si d'un pt de vue apprentissage ça peut être une bonne chose de maitriser pleinement son code.
https://www.phpfastcache.com/
[/EDIT]