質問

21mのレコードを備えたMySQLデータベースがあり、約1mのレコードのアップデートを実行しようとしていますが、クエリは失敗します ERROR 1206 (HY000): The total number of locks exceeds the lock table size.

ロックを取得せずにテーブルを更新することは可能ですか?

mysql構成パラメーターを変更するためにアクセスできません innodb_buffer_pool_size. 。同じことを達成する別の方法はありますか?

ありがとう

編集:

  1. 5000のバッチで試してみましたが、数回動作しますが、同じエラーが発生します
  2. テーブル全体をロックするためにロックテーブルを試してみましたが、それでも機能しません。
役に立ちましたか?

解決

Limit句を使用して、バッチで更新を行うことができると思います。

他のヒント

行レベルではなく、テーブルレベルでロックしてみてください。使用する LOCK TABLES MyTable WRITE. 。これは問題を解決するかもしれません。しかし、保証はありません!テーブルのロックを解除することも忘れないでください!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top