問題タブ [filesort]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
7622 参照

sql - MySQL:INおよびORDERBYを使用する場合はファイルソートを避けてください

私が次のテーブルを持っているとしましょう(それを呼びましょうmy_table):

の主キーmy_tabletable_id(auto_increment)であり、とのキーもmy_fieldありtable_idます。

このクエリをテストすると...

...私は得る:

正しいキー()を使用していることがわかりますmy_field

しかし、これを試してみると...

...私は得る:

キーをまったく使用していないことがわかります。さらに悪いことに、filesortを使用していることがわかります。

" FORCE INDEX (my_field)"を実行しても、ファイルソートは実行されます。

ファイルソートを回避する方法はありますか?

0 投票する
2 に答える
3134 参照

mysql - Using filesort to sort by datetime column in MySQL

I have a table Cars with datetime (DATE) and bit (PUBLIC).

Now i would like to take rows ordered by DATE and with PUBLIC = 1 so i use:

But unfortunately when I use explain to see what is going on I have this:

And it takes 0,3 ms to take this data while I have only 100 rows. Is there any other way to disable filesort?

If i goes to indexes I have index on (PUBLIC, DATE) not unique.

Table def:

0 投票する
2 に答える
1595 参照

mysql - MySQLは、「順序付け」を行うときに「filesortの使用」に固執しました

クエリでfilesortの使用を停止できないようです。

これは私の質問です:

テーブル構造:

説明:

編集:クエリ/テーブル構造から不要な部分をいくつか切り取りました。

誰かアイデアはありますか?

0 投票する
2 に答える
10404 参照

mysql - 「ファイルソートの使用」を使用しないようにMySqlクエリを最適化する

「ファイルソートの使用」を避けるためにクエリを最適化するためにあなたの助けが必要です.クエリの仕事は、特定のタグに属するすべての記事を選択することです. クエリは次のとおりです。

テーブル構造は次のとおりです。

タグテーブル

記事表

サンプルデータ

0 投票する
3 に答える
8872 参照

mysql - Mysqlの遅いクエリ:INNER JOIN + ORDER BYによりファイルソートが発生する

このクエリを最適化しようとしています:

テーブルのサイズは 38k 行で、31k と mysql は "filesort" を使用するため、かなり遅くなります。別のインデックスを使用しようとしましたが、うまくいきませんでした。

filesort を使用して mysql を回避するには、どのような種類のインデックスを定義する必要がありますか? 注文フィールドがwhere句にない場合は可能ですか?

更新: プロファイリング結果:

update2:

実際のクエリ (いくつかのブール フィールド、役に立たないインデックス)

空のセット (1.25 秒)

ORDER BY なし — 0.01 秒。

解決

  1. 「ORDER BY posts_tags.created_at DESC」に更新されたクエリ (アプリ コードの 2 つの小さな変更)
  2. インデックスが追加されました: index_posts_tags_on_created_at.

それで全部です!

0 投票する
2 に答える
1024 参照

sql - SQLクエリは常にfilesortを句ごとに使用します

orderby句を使用しているSQLクエリを最適化しようとしています。EXPLAINを使用すると、クエリは常に「usingfilesort」と表示されます。このクエリは、ユーザーによる投稿にタグが付けられているグループディスカッションフォーラムに適用しています。

これが私が使用している3つのテーブルです:users、user_tag、tags

user_tagは、ユーザーとそのタグの関連付けマッピングテーブルです。

プログラミングを使用してサーバー側でusage_countを更新します。これが私に問題を与えているクエリです。クエリは、特定のユーザー名のtag_idとusage_countを、使用回数の降順で並べ替えて見つけることです。

説明の出力は次のとおりです。

ここで出力を説明する

その「ファイルソートの使用」を失うために何を変更する必要がありますか

0 投票する
2 に答える
3845 参照

ruby - Rubyでは、ディレクトリリスト内のフォルダの前にファイルをどのようにリスト/ソートしますか?

私はルビーのコードに従う必要があります:

それは(例えば)出力します:

次のように出力したい:

基本的には、ディレクトリの前にファイルを表示したいのですが。使用できる並べ替えコマンドはありますか?

0 投票する
4 に答える
211 参照

mysql - このMySQLクエリのパフォーマンスを改善するにはどうすればよいですか?

MySQLクエリがあります:

クライアントテーブルには約60〜70k行があり、「id」、「record_type」、「date_action」、「company_name」のインデックスがあります。残念ながら、クエリの完了には5秒以上かかります。'ORDER BY'を削除すると、ファイルソートが不要になるため、これは約30ミリ秒に短縮されます。このクエリを変更して5秒以上の応答時間を改善する方法はありますか?

0 投票する
1 に答える
242 参照

mysql - 「OR」ステートメントを使用する場合のMysqlインデックスの問題

このクエリの機能するインデックスを作成し、「ファイルソート」を取り除く方法はありますか?

インデックス "topcat" (列: topcat1+topcat2+topcat3+approved+id) を作成しましたが、まだ "Using where; Using filesort" を使用しています。

もう 1 つの列を作成できます。たとえば、「all_topcats」を作成して、配列に topcat 番号を格納し、1,5,7 にしてから、クエリ「... where $cid iIN ()...」を実行します。しかし問題は、この場合、「all_topcats」列は「varchar」になりますが、「承認済み」列と「id」列は int になり、いずれにせよインデックスは使用されないということです。

何か案は?ありがとう。

0 投票する
2 に答える
1403 参照

mysql - 原因による並べ替え

私はまだ次の問題があります

ID とタイムスタンプは主キーのペア (mediumint+datetime) dataTypeId 外部キー (mediumint) テーブルはInnoDbとして作成されます

ID が同じでタイムスタンプが異なる (同じアイテムのバージョン) レコードがさらに存在する可能性があります。これがgroup by の理由です

たとえば、これを読みました:stackoverflowに関する同様のトピック

しかし、それは私の問題を解決しませんでした。

次のインデックスを作成しようとしました。

  1. (dataTypeId、id、timestamp) のインデックス - この順序で
  2. (dataTypeId, timestamp) のインデックス - この順序で
  3. id のインデックス
  4. タイムスタンプのインデックス

最後の2つは絶望の小さな断片です

何か基本的なことを見逃しているに違いないと思います
が、実際には何がわかりません。
解決策を期待しないでください(それはいいでしょう:)ちょうど私を正しい方法で蹴ってください:)

sort_buffer_size は 4194288 になりました

編集: 説明 - インデックスなし

インデックスを作成して説明する