Eu li vários blogs, tentei pesquisar no Google, mas não encontrei nenhuma satisfação com nenhuma solução. Eu tenho os seguintes problemas:
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) )
Tentei resolver isso aumentando innodb_pool_buffer_size
e wait_timeout
no my.ini, mas não funcionou.
Mudei o mecanismo da minha tabela de cache de Innodb para MyIasm. A questão desapareceu, mas não é uma solução perfeita. O mecanismo da tabela será alterado após uma atualização do drupal. Esse problema não afeta nada no site, mas não quero que isso ocorra.
Alguma solução pessoal?
7
performance
database
Sumit Madan
fonte
fonte
Respostas:
Leia e siga este post ; assume o InnoDB.
Em particular, consulte a parte que diz para adicionar o seguinte ao arquivo settings.php.
fonte
$databases['default']['default']['init_commands'] = array('isolation' => "SET SESSION tx_isolation='READ-COMMITTED'");
resolvi meu problema no meu servidor local. Ainda não o verifiquei no servidor ativo. Confirme que não apresentará nenhum problema no futuro se for testado por você? Estou usando o kickstart de comércio.A melhor maneira de se livrar dos erros de deadlock de uma vez por todas é o módulo de cache de consulta de banco de dados de pré-busca assíncrona .
Eu não posso recomendar o suficiente. Brilhantemente escrito e grandes ganhos de desempenho.
fonte