Bonjour,
Je poste mes questions dans cette rubrique car la plupart concernent MySQL.
Je travaille sur un gros projet que nous avons monté avec des amis depuis plus de 2 ans et qui fonctionne de mieux en mieux. J'ai appris beaucoup de choses concernant le dév. web en php/MySQL sur le tas, mais je rencontre régulièrement des problèmes et des choix à faire que j'aimerais vous soumettre pour avoir votre avis.
1/ Une question concernant la taille des tables MySQL. Certaines des tables que nous utilisons sont très grosses en taille et en nombre de ligne. Par ex. l'une d'elle fait plus de 5 millions de lignes et 510M. A partir de quel moment la taille d'une table risque de devenir un vrai problème?
En outre, lorsque cela est possible, est-il intéressant de spliter en plusieurs les tables qui grossissent? Par exemple, sortir les infos d'abonnement de la table des membres pour le lire avec un LEFT JOIN?
Inversement, lorsque l'on lit une dizaine de tables différentes regroupant des infos de même type, est-ce intéressant des les réunir en une seule en y ajoutant simplement une colonne donnant le type d'info lue, au risque de se retrouver avec une table 10 fois plus volumineuse qu'une seule de ces 10 tables?
2/ J'ai assez souvent des erreurs de type :
1213 deadlock
1205 lock time out exceeded
et ce même sur des tables en InnoDB ou des tables temporaires.
Comment éviter au mieux les problèmes de concurrence d'accès sur des tables qui sont souvent lues et modifiées? Cela dépend-il des configs serveurs?
3/ J'utilise les sessions en base pour accélérer leur lecture; cependant, je constate que par moment (sans doute à cause de la charge?), je perds des informations de session. C'est très génant quand une session sert à stocker des infos importantes du type "âge du membre" ou "mail d'envoi". Que faire pour blinder l'utilisation des sessions en base?
J'écris souvent les variables en session pour éviter d'aller les relire ensuite dans la base et ainsi réduire le nombre de select. Mais est-ce vraiment si utile que ça?
4/ Et enfin, dernière question, certaines pages du site utilisent entre 4 et 8 requêtes AJAX; or, je constate que de temps en temps, aucune des requête n'aboutit. Je recharge la page par F5 et automatiquement, les requêtes aboutissent. C'est assez génant d'afficher un message "chargement en cours" qui ne donne rien de plus!
Avez vous rencontré ce problème, ou des idées à me donner sur le sujet?
En vous remerciant d'avance et en espérant avoir respecté l'esprit de ce forum,
Chnain
Partager