Je suis en train de structurer mes requêtes pour un modèle de mise à jour de base de données avec CodeIgniter.Performances de base de données avec des requêtes de mise à jour en boucle?
j'obtenir le formulaire affiché des touches d'entrée avec $keys = array_keys($_POST)
Pour mettre à jour les champs de base de données selon je voulais faire quelque chose comme ça
foreach($keys as $key){
$data = $this->input->post($key);
$this->db->query("Update $table SET '$key'='$data' WHERE user_id='$the_user->id'"); }
(ce n'est pas le code de production, juste essayer d'illustrer ma question , donc pas d'échappement, validation, etc ...)
Ma question est, est-ce que cela pose un problème de performance en exécutant une requête séparée pour chaque élément de données de formulaire soumis?
EDIT: désolé n'a pas l'intention de sonner comme une question oui ou non, évidemment si oui ou non, la réponse est oui, mais je cherche plus de dans quelle mesure cela entrave la performance?
mise à jour question pour refléter mes espoirs de la réponse, désolé, je n'étais pas clair avant. – user48202
L'impact sur les performances dépend du nombre de paires clé/valeur, du nombre de requêtes en cours d'exécution, de la taille des tables, etc. Si vous exécutez seulement 5 requêtes, cela devrait être presque instantané. Le plus grand impact sur les performances serait de s'assurer que le champ 'user_id' est indexé. – vol7ron
Comme vous l'avez dit, ce n'est pas du code de production, donc si votre requête est plus avancée (jointures multiples), alors vous voudrez vraiment réduire le nombre de requêtes soumises (option 1). – vol7ron