Bonjour,
Nous hébergeons un site e-commerce sous Prestashop.
Nous avons créer une application web dédié à l'usage unique de nos collaborateurs qui utilisent la même base de données SQL que celle du Prestashop.
Cette application permet de modifier des informations telles que les prix des produits par exemple.
Sur le papier, tout fonctionne très bien. Néanmoins, la connexion de cette application (hébergée en local dans nos locaux) à la BDD en utilisant PDO est extrêmement lente. J'étudie en ce moment même une solution qui me permet d'avoir un dump de la BDD en local pour l'application en faisant une mise à jour des informations une fois par jour vers la la BDD.
Mais cette "solution" ne nous convient pas, nous aimerions savoir comment améliorer le temps de connexion à la BDD.
Toute aide sera la bienvenue, merci beaucoup.
La connexion (PDO classique) :
```try {
$cxn1 = new PDO('mysql:host=' . $dbHost . ';dbname=' . $dbName1, $dbUser, $dbPass);
$cxn1->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
echo 'Error: ' . $e->getMessage();
}```
-Version PHP globale 7.1
-Offre perf2014x2
-MySQL 5.7
Bonjour @FrancoisC73
Si j'ai bien compris, vous souhaitez qu'une application en local sur votre PC puisse interroger, modifier le contenu d'une base de données sur un hébergement mutualisé.
Si c'est la base de données livrée avec l'abonnement mutualisé : c'est impossible.
Et heureusement pour des raisons de sécurité.
Il doivent plutôt avoir avoir un dédié ou un VPS car il semble dire que cela fonctionne mais que c'est lent.
Bonjour,
Le code fournit est une connexion standard à une BDD avec pdo.
Cela ne permet pas du tout de savoir pourquoi vos requêtes sont lentes.
Pouvez vous déjà nous dire sur quoi vous êtes hébergé ?
Dans l'immense majorité des cas pour votre soucis, le problème provient des requêtes BDD mal fichues ou d'index manquants.
Merci pour votre réponse.
Effectivement le CRUD de l'application locale fonctionne très bien et les données sont bien modifiées sur la BDD OVH cloud. Le chargement des données est trés lent oui.
Le code PDO fournis est effectivement une connexion classique.
Voici les requêtes, à titre informatif, permmetant de charger la page d'accueil de l'application :
En ce qui concerne mon abonnement comme indiqué sur les factures :
-Hébergement Web - Performance2 - 12 mois
-Serveur sql privé 1Go de RAM - 6 mois
Je suis rentré dans la société après la souscription du contrat. Je ne sais pas comment trouver d'autre informations, si vous pouvez m'indiquer.
Je sais que c'est un abonnement mutualisé d'aprés ce qu'on m'a dit. Si je bénéficié d'un VPS, cela serais visible sur mes factures non ?
Merci encore.
-Serveur sql privé 1Go de RAM - 6 mois
Je suppose que c'est cette base de données que vous utilisez.
Oui bien sûr c'est celle ci
Oui bien sûr c'est celle ci
Je laisse la place aux spécialistes.
Je n'utilise pas les offres mutu, @Gaston_Phone sais tu si les sql privés permettent une connexion extérieure ? Ou alors peut être qu'il est possible d'avoir du VPN sur ces hosts ?
Merci pour les exemples des requêtes, les jointures me paraissent bonnes. Les conditions sont sur des id ça devrait le faire.
Reste à vérifier le bon indexage des colonnes mais comme ce sont des tables de prestashop, ça devrait à priori.
Pour le savoir il faudrait, sur votre SQL privé, activer la journalisation des :
- requêtes lentes (supérieures à 1, voir 2 secondes).
- requêtes sans index
Vous pourrez ainsi avoir sans effort un premier diagnostique (BDD ? , processeur ? réseaux ? le site internet à trop de visiteurs ? )
>Je sais que c'est un abonnement mutualisé d'aprés ce qu'on m'a dit. Si je bénéficié d'un VPS, cela serais visible sur mes factures non ?
Les VPS (à puissance égales sont bien plus cher que les serveurs dédiés).
Compter dans les 80€ mensuel d’infogérance + le prix du serveur. Dans votre cas, comme il y a un Prestashop en plus, si vous avez un peu de traffic et de chiffre d'affaire ce n'est pas déconnant.
Je n'utilise pas les offres mutu, @Gaston_Phone sais tu si les sql privés permettent une connexion extérieure ?
Oui @TTY, d'après ce que j'ai compris des discussions précédentes.
**-Hébergement Web - Performance2** - 12 mois
**-Serveur sql privé 1Go de RAM - 6 mois**
Fonctionne sur Serveur sql privé 1Go de RAM, mais très lent.
Merci pour le conseil !
Effectivement consulter les logs me semble être un excellent début.
Je n'y avais pas pensé et je ne savais que c'était possible (mais c'est logique en fait).
Par contre, je suis embêté :
Quand je vais consulter l'onglet "logs" dans mon SQL privé tout est vide. Vous m'avez dit de les activer, je n'ai pas trouvé comment faire.
J'ai suivi la documentation officielle d'OVH pour les consulter -> https://docs.ovh.com/fr/clouddb/debuter-avec-clouddb/#recuperer-les-logs-de-votre-serveur-clouddb doc
La documentation ne parle aucunement d'activation.
J'ai donc essayé naturellement de me connecter à la BDD en SMTP avec Filezilla pour récupérer ```stdout.log``` mais sans succès : ```"Erreur: Connection interrompue après 20 secondes d’inactivité"```
(J'ai bien vérifier mon mot de passe et choisis le protocol SMTP dans Filezilla)
Merci @TTY et @Gaston_Phone pour votre temps et vos conseils.
Bonjour,
sais tu si les sql privés permettent une connexion extérieure
Au dernière nouvelles : non
Il faut une CloudDB et mettre son IP en autoriser.
@FrancoisC73 : c'est quoi l'hôte de vôtre BDD ?
Si vous faites un ping vous avez quoi comme latence ?
Car avant de chercher un problème dans les requêtes faut commencer par la base : le temps initial entre l'application local et le SQL distant.
Cordialement, janus57
Je ne connais pas les SQL privé. Les services Mysql est configuré via un fichier my.cnf . Voyez la documentation OVH.
Suite à l'intervention, de @janus57 qui nous dit que votre BDD ne devrait pas être accessible depuis l'extérieur ce vous vous décrivez comme fonctionnement n'est peut être pas exact. Difficile d'y voir clair.
Bonjour @FrancoisC73
Néanmoins, la connexion de cette application (hébergée en local dans nos locaux) à la BDD en utilisant PDO est extrêmement lente
En ce qui concerne mon abonnement comme indiqué sur les factures :
-Hébergement Web - Performance2 - 12 mois
-Serveur sql privé 1Go de RAM - 6 mois
**Pouvez-vous nous confirmer que, même si l'opération longue, vous arrivez bien à accéder à votre Serveur sql privé 1Go, à y faire des opérations de lecture et d'écriture ?
C'est très important de savoir pour le reste de la discussion.
Oui absolument je confirme lecture, écriture.
Je suis bien en CloudDB et mis mon IP en autoriser.
CloudDB = SQL privé ?
Bonjour,
Je suis en cloudDB et mis mon ip en autorisé oui.
Host : clouddb015.eu008.
Comment je fait pour ping ma bdd exactement ?
Merci
Oui, sur mon tableau de bord le libellé de la BDD c'est "SQL Privé"
Comment je fait pour ping ma bdd exactement ?
Dans votre premier message, le code de connexion.
Regardez et donnez nous la valeur de $dbHost (et uniquement celle-ci)
Je veux bien lire toute la doc du monde.
Mais laquelle ? J'ai absolument rien trouvé et j'ai mis en référence la doc que j'ai consulter pour cette histoire de logs dans les messages précédents.
