数日前、MySQL データベースから次のエラーが発生しました。
スレッド スタック オーバーラン: 196608 バイトのスタックのうち 68744 バイトが使用され、128000 バイトが必要です。'mysqld -O thread_stack=#' を使用して、より大きなスタックを指定します。
私が見つけたすべてのドキュメントには、次のように書かれています。
デフォルトは、MySQL 4.0.10 より前は 64KB、それ以降は 192KB です。スレッド スタック サイズが小さすぎると、サーバーが処理できる SQL ステートメントの複雑さ、ストアド プロシージャの再帰の深さ、およびその他のメモリを消費するアクションが制限されます。
変数 thread_stack を 256K に設定しましたが、これは単なるランダムな値でした。今のところ問題は解決しましたが、どれくらい大きくすべきか、値の例、または使用法を知りたいです。例えば:
- 96KB (x KB) のスレッド スタックでできることとできないことは何ですか?
- 必要なスレッドスタックの大きさを計算する方法は?