私は複数のブログを読んでグーグルしようとしましたが、どの解決策からも満足感を見つけられませんでした。次の問題があります。
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) )
My.iniのinnodb_pool_buffer_size
とwait_timeout
を増やすことでこれを解決しようとしましたが、うまくいきませんでした。
キャッシュテーブルのエンジンをInnodbからMyIasmに変更しました。問題はなくなりましたが、完全な解決策ではありません。 drupalのアップグレード後にテーブルエンジンが変更されます。この問題はサイトの何にも影響を与えませんが、発生させたくありません。
ソリューションの人はいますか?
読んでフォロー この投稿 ; InnoDBを想定しています。
特に、settings.phpファイルに以下を追加するように言っている部分を参照してください。
$databases['default']['default']['init_commands'] = array('isolation' => "SET SESSION tx_isolation='READ-COMMITTED'");
デッドロックエラーを一度に取り除く最善の方法は、 非同期プリフェッチデータベースクエリキャッシュ モジュールです。
あまりお勧めできません。見事に書かれ、素晴らしいパフォーマンスの向上。
パッチを適用しようとしました https://www.drupal.org/project/drupal/issues/16509 。
それでもAWSで問題が発生しています