J'ai lu plusieurs blogs, essayé de google, mais je n'ai trouvé aucune satisfaction dans aucune solution. J'ai les problèmes suivants:
PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction: DELETE FROM {cache_field} WHERE (cid LIKE :db_condition_placeholder_0 ESCAPE '\\') ; Array ( [:db_condition_placeholder_0] => field\_info:% ) in cache_clear_all() (line 163 of \includes\cache.inc).
PDOException: SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction: SELECT 1 AS expression FROM {sessions} sessions WHERE ( (sid = :db_condition_placeholder_0) AND (ssid = :db_condition_placeholder_1) )
J'ai essayé de résoudre ce problème en augmentant innodb_pool_buffer_size
et wait_timeout
dans my.ini, mais cela n'a pas fonctionné.
J'ai changé le moteur de ma table de cache d'Innodb en MyIasm. Le problème a disparu mais ce n'est pas une solution parfaite. Le moteur de table sera modifié après une mise à niveau de drupal. Ce problème n'affecte rien sur le site mais je ne veux pas que cela se produise.
Des gars de solution?
7
performance
database
Sumit Madan
la source
la source
Réponses:
Lisez et suivez ce post ; cela suppose InnoDB.
En particulier, voir la partie disant d'ajouter ce qui suit au fichier settings.php.
la source
$databases['default']['default']['init_commands'] = array('isolation' => "SET SESSION tx_isolation='READ-COMMITTED'");
résolu mon problème sur mon serveur local. Je ne l'ai pas encore vérifié sur le serveur en direct. Veuillez confirmer qu'il ne posera aucun problème à l'avenir s'il est testé par vous? J'utilise Commerce kickstart.Le meilleur moyen de se débarrasser des erreurs de blocage une fois pour toutes est le module Asynchronous Prefetch Database Query Cache .
Je ne le recommanderai jamais assez. Brillamment écrit et de grands gains de performances.
la source