+174
−87
Chargement en cours
- on separe le traducteur de requetes, qui a besoin d'etre instancie au cas par cas avec un environnement vierge, du requeteur qui peut etre instancie une seule fois par serveur. - on rajoute spip_sqlite comme classe d'api en surcouche, qui est utilisee pour traduire et requeter, et se charge d'instancier le requeteur et le traducteur - on ajoute a cette classe les methodes pour demarrer et arreter une transaction, ainsi que pour ressortir le dernier id insere dans la base sur les clauses d'insertion - on repercute sur les appels de traduire_requete pour les reformater correctement - on optimise sql_insertq_multi en ouvrant une transaction au depart et en la fermant a la fin de l'insertion multiple - on va plus loin dans l'optimisation de sql_insertq_multi en expansant les fonctions appelees initialement en cascade pour mutualiser tout ce qui peut l'etre et ne l'executer qu'une fois au lieu de n fois Au final, sql_insertq_multi(N) vs Nxsql_insertq donne un gain x3 pour N=10 lignes et x8 pour N=100 lignes
Forge communautaire SPIP | Charte d'utilisation | Signaler un problème sur ce site