17

数日前、MySQL データベースから次のエラーが発生しました。

スレッド スタック オーバーラン: 196608 バイトのスタックのうち 68744 バイトが使用され、128000 バイトが必要です。'mysqld -O thread_stack=#' を使用して、より大きなスタックを指定します。

私が見つけたすべてのドキュメントには、次のように書かれています。

デフォルトは、MySQL 4.0.10 より前は 64KB、それ以降は 192KB です。スレッド スタック サイズが小さすぎると、サーバーが処理できる SQL ステートメントの複雑さ、ストアド プロシージャの再帰の深さ、およびその他のメモリを消費するアクションが制限されます。

変数 thread_stack を 256K に設定しましたが、これは単なるランダムな値でした。今のところ問題は解決しましたが、どれくらい大きくすべきか、値の例、または使用法を知りたいです。例えば:

  • 96KB (x KB) のスレッド スタックでできることとできないことは何ですか?
  • 必要なスレッドスタックの大きさを計算する方法は?
4

1 に答える 1

14

今日も同様のエラーが発生しました。変数に関するMySQL のドキュメントには、十分なデフォルト値 (32 ビット システムの場合は 192K、64 ビット システムの場合は 256K) のヒントと、MySQL Benchmark suiteを参照するためのヒントが記載されています。

于 2011-03-10T19:40:48.460 に答える