Ybbet Spip a écrit :
Hello,
Le 8 juin 2017 à 20:25, Eric Lupinacci <eric@smellup.net
<mailto:eric@smellup.net>> a écrit :
Hello,
Le 8 juin 2017 à 17:23, Ybbet Spip <teddy.spip@gmail.com
<mailto:teddy.spip@gmail.com>> a écrit :
Une petite info à partager sur une des limites du plugin Noizetier.
Pour un site particulier, l'utilisateur a créé beaucoup de
compositions grâce au noizetier. Ce qui est très pratique. Ces
compositions sont enregistrées dans spip_meta dans
noizetier_compositions.
En soit, pas de soucis. Sauf quand on arrive, aujourd'hui, à la
limite des 65000 caractères du champ "valeur" de la table spip_meta.
Waouh je suis impressionné.
Il doit en avoir créé un max, tu as le nombre exact ?
Ils sont plusieurs utilisateurs. Il y a actuellement 264 pages listées,
avec une dizaine de noisettes en moyenne par page. Chaque noisette a des
options. 
Est-ce qu'il ne serait pas envisageable de passer à une table
dédiée à noizetier_compositions ?
C'est sûr, cela changera le fonctionnement du plugin. Mais le
gain de performance et surtout ne plus avoir la limite serait
parfait.
On pourrait mais ça n'arrangera en rien les performances à mon avis,
au contraire.
C'est mon impression aussi.
En tout cas garder des configurations aussi grosses en taille dans spip_meta est très mauvais.
Je rappelle que la table meta est cachée dans le fichier tmp/meta_cache.php qui est lu et chargé à chaque hit. Il est fortement souhaitable et encouragé que ce fichier reste léger, et donc qu'on y stocke que des valeurs de configuration légères.
Son avantage est évidemment qu'il permet de récupérer les valeurs qui y sont stockées sans avoir besoin d'ouvrir une connexion sur la BDD, donc ça peut être intéressant sur des valeurs nécessaires y compris sur les hits en cache, sans calcul de squelette.
Si il faut faire une table, il vaut mieux que ce soit une table dédiée et structurée plutot qu'une autre table de meta dans laquelle les valeurs sont stockées sérializées. La serialization/unserialization est couteuse en perf.
Quand au stockage des compositions dans des fichiers xml/yaml par cohérence des compositions définies manuellement, je vois l'idée séduisante, mais ça créé une autre incohérence.
Actuellement toutes les données d'un site sont stockées en base. Stocker ces infos dans des fichiers va créer une spécificité : il ne suffira plus de migrer la base SQL pour déplacer les données d'un site, il faudra aussi penser aux fichiers des compositions, qui seront forcément en dehors du squelette (a priori leur place naturelle serait un sous dossier config/compositions)
Je pense que c'est pas top en terme de maintenabilité/portabilité et il vaut mieux en rester à :
un site = Données (SQL) + squelettes/ + IMG/
avec une certaine atomicité de chaque morceau
Cédric