1

J'ai une ancienne base de données MySQL 4.1 avec une table de quelques millions de lignes et une ancienne application Java qui se connecte à cette base de données et renvoie fréquemment plusieurs milliers de lignes à partir de cette table via une simple requête SQL (ie SELECT * FROM people WHERE first_name = 'Bob' Je pense que l'application Java utilise des instructions préparées côté client mais cherchait à changer cela au serveur, et dans l'exemple mentionné la valeur de first_name variera en fonction de ce que l'utilisateur entre). Je voudrais accélérer les performances de la requête select et je me demandais si je devrais passer à Prepared Statements ou Stored Procedures. Y at-il une règle générale de ce qui est plus rapide/moins gourmand en ressources (ou si une combinaison des deux est meilleure)MySQL Prepared Statements vs Stored Procedures Performance

Répondre

2

Vous avez un index de prénom, non? Cela accélérera votre requête beaucoup plus que de choisir entre les instructions préparées et les procédures stockées.

+0

Salut, désolé j'aurais dû mentionner qu'il est indexé. Je n'ai pas essayé d'améliorer les performances sur des tables avec plusieurs millions de lignes (et MySQL d'ailleurs), donc je ne sais pas trop où commencer à chercher/tester. Si une table a indiqué que 5m lignes indexeront une colonne dans cette table, aura-t-elle des problèmes/problèmes de performances pour indexer ce nombre de lignes (le matériel sur lequel est installée la base MySQL n'est pas le plus à jour)? – amardilo

0

Si vous n'avez qu'une seule requête à vous poser, vous devriez pouvoir implémenter les deux alternatives (sur votre plate-forme de test bien sûr!) Et voir laquelle vous donne les meilleures performances.

(je suppose qu'il n'y aura pas beaucoup de différence si ...)

0

On dirait que la meilleure façon est juste de faire le changement et le tester dans un environnement de test.

Merci pour l'aide.