sql >> データベース >  >> RDS >> Mysql

SQLクエリが統計状態でスタックしている

    私は最近同じ問題に遭遇しました:MySQLは、多数のテーブルが結合されたクエリでチョーク(状態「統計」でスタック)し始めました。良いブログ投稿 これが発生する理由とその解決方法を説明します。

    基本的に、少なくともMySQL 5.5では、構成パラメーターoptimizer_search_depthのデフォルト値 は62です。これにより、クエリ内のテーブルの数が増えると、クエリオプティマイザの時間が指数関数的に長くなります。一定の時点を過ぎると、クエリが完了するまでに数日またはそれ以上かかるようになります。

    ただし、optimizer_search_depthを設定した場合 0 my.cnfで 、MySQLは適切な深さを自動的に選択しますが、まだそれほど複雑ではない7に制限します。

    どうやらこの問題は修正された> MySQL 5.6では、まだ自分でテストしていません。



    1. MySQLにint(255)を格納した場合のMAX数はいくつですか?

    2. OracleでSQL実行プランを確認するにはどうすればよいですか?

    3. Java(Netbeans)を使用してMySQLに接続すると、「通信リンクの失敗最後に送信されたパケット...」というエラーが発生するのはなぜですか?

    4. Membership.ValidateUserは、VS 2010 /.NET4.0へのアップグレード後に常にfalseを返します