web-dev-qa-db-fra.com

Impasse sur la table des sessions

Rarement, au lieu de charger mon site, je reçois un écran blanc de la mort avec ce message d'erreur:

Impasse trouvée lors d'une tentative de verrouillage; essayez de redémarrer la transaction SQL = INSERT INTO jom_session (session_id, client_id, guest, time, userid, username) VALEURS ('cv95odk14jbe8738ecg9se9de1', 0, 0, '1402423781', 101, 'nom d'utilisateur @ exemple.com ')

Je ne peux pas le dupliquer, mais je l'ai déjà vu moi-même, et d'autres utilisateurs l'ont signalé. Est-il possible d'empêcher que cela se produise?

3
ContextSwitch

S'il y a un blocage, cela indiquerait que les mises à jour d'index sont effectuées depuis différentes directions pour ainsi dire et il se peut qu'un bogue dans Joomla en soit la cause. En plus de documenter les symptômes ou d'essayer de trouver le bogue, vous pouvez atténuer le problème en permettant à la table de session d'être plus performante.

En plus du commentaire Jordans, vous pouvez rendre la table de session très efficace en la transformant en une table MySQL de type MEMORY. Cela signifie que des sessions sont perdues lors du redémarrage de MySQL.

Pour le transformer en table de mémoire, réglez le champ de données de mediumtext sur varchar (15000) (la taille dépend de l’extension stockant quelles données), puis réglez le type sur MEMORY.

Vous devez également prévoir suffisamment de mémoire "tas" dans votre configuration MySQL car la table sera maintenant conservée en mémoire. Pour les grands sites que je gère, j'utilise jusqu'à 640 Mo.

Pour tout cela, vous devez bien sûr avoir un VPS.

1
jdog