Optimisation d'un code d'insertion de ligne dans SQL
Fermé
hypo
-
1 juin 2020 à 11:27
Zempachi Messages postés 7472 Date d'inscription vendredi 14 octobre 2005 Statut Contributeur Dernière intervention 5 juin 2020 - 3 juin 2020 à 15:02
Zempachi Messages postés 7472 Date d'inscription vendredi 14 octobre 2005 Statut Contributeur Dernière intervention 5 juin 2020 - 3 juin 2020 à 15:02
A voir également:
- Optimisation d'un code d'insertion de ligne dans SQL
- Optimisation pc - Accueil - Utilitaires
- Site de vente en ligne particulier - Guide
- Partage de photos en ligne - Guide
- Code ascii de a - Guide
- Aller à la ligne excel - Guide
2 réponses
jordane45
Messages postés
38273
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 novembre 2024
4 696
1 juin 2020 à 11:31
1 juin 2020 à 11:31
Bonjour,
Pour commencer....as tu mis un INDEX sur ta table sur le champ URL ?
cela devrait déjà bien accélérer ta requête.
Ensuite, au lieu de directement regarder en BDD puis faire l'insertion ...
Tu devrais stocker toutes les URL du sitemap que tu regardes dans un array
Travailler sur cet array pour retirer les éventuels doublons
Faire une seule requête pour lister toutes les URL que tu as déjà en BDD qui sont dans ton array ( via un IN )
Puis faire l'insertion de celles qui n'y sont pas déjà.
Pour commencer....as tu mis un INDEX sur ta table sur le champ URL ?
cela devrait déjà bien accélérer ta requête.
Ensuite, au lieu de directement regarder en BDD puis faire l'insertion ...
Tu devrais stocker toutes les URL du sitemap que tu regardes dans un array
Travailler sur cet array pour retirer les éventuels doublons
Faire une seule requête pour lister toutes les URL que tu as déjà en BDD qui sont dans ton array ( via un IN )
Puis faire l'insertion de celles qui n'y sont pas déjà.
Ok, je vais essayer pour le array (en vérité vu que les sitemaps on quelque 50k+ urls chacuns a vu de nez, je me disais que ce serait pas possible comme ça).
En revanche je ne connaisser pas les index sql ... j'ai regarder un peut sur le net, tu parle bien de CREATE INDEX ? je vais le faire aussi du coups.
Donc merci pour ton aide !
En revanche je ne connaisser pas les index sql ... j'ai regarder un peut sur le net, tu parle bien de CREATE INDEX ? je vais le faire aussi du coups.
Donc merci pour ton aide !
Zempachi
Messages postés
7472
Date d'inscription
vendredi 14 octobre 2005
Statut
Contributeur
Dernière intervention
5 juin 2020
906
Modifié le 3 juin 2020 à 15:02
Modifié le 3 juin 2020 à 15:02
Si ton tableau est vraiment très grand (et donc pour éviter les erreurs de memory_limit) alors une technique serait de créer une table temporaire (TEMPORARY TABLE) dans laquelle tu stockerais toutes les URLs du sitemap.
Il sera alors possible de faire des "INSERT SELECT" à partir de cette table temporaire.
Il sera alors possible de faire des "INSERT SELECT" à partir de cette table temporaire.