私は、MySQLとソート行の機能に関して少しの最適化を考えようとしています。私はそれを理解しているので、最大の行比較を設定することができます。マシンのメモリがI/Oを減らすためにそれを取ることができるなら、これをかなり高い値に設定することをお勧めします。私の質問は、大量のブロックとしてソートまたは静的に多くのものをロードするときに、メモリが動的に割り当てられるかどうかです。基本的に私が100%を確実に知っているなら、ソートするために1000行を超えることはありません.1000万と比べて小さなバッファを与えるために、1200行の最大行を設定する方が効率的でしょう。あなたの答えをありがとうと申し訳ありませんが私はまだSQLとMySQLには非常に新しいです十分な明示的ではない場合。 MySQLは、このようなSELECT ... ORDER BY
を満たすように、結果セットをソートする必要がある場合、それはいくつかの方法のいずれかで動作しますMySQLに関するソートのサイズと効率
0
A
答えて
0
:ORDER BY
はINDEX
で扱うことができる場合
、何のソートは必要ありません。
行数が「小」(およびその他の基準)の場合、RAMに
MEMORY
テーブルが作成され、メモリ内ソートが使用されます。これは非常に高速です。このようなtemp-MEMORYテーブルは、tmp_table_size
とmax_heap_table_size
の両方によって制限されています。複数の接続がこのように同時に実行されている可能性があるため、RAMの1%よりも高く設定しないことをお勧めします。これがオーバーフローしたり、失敗した場合は、代わりにMyISAMテーブルが構築されます。これは本質的に無制限のサイズを持つことができます。それでも、キャッシングのために、ディスクに流出する可能性があります。それによってI/Oが発生します。
他にも、MySQLがソートを行うケースがあります。たとえば、インデックスを作成すると、すべての情報が収集され、並べ替えられ、インデックスのBTreeに情報が書き出されます。これにはオペレーティングシステムのソートが含まれている可能性があります。ソートはI/Oに関係する場合とそうでない場合があります。
1200行はとなります。はRAMで実行されます。 1M行はとなります。にはI/Oが関係します。
しかし、結論は次のとおりです。心配しないでください。 ORDER BY
が必要な場合は、それを使用してください。 MySQLをできるだけ最善の方法でやりましょう。
関連する問題
- 1. Pythonのソート効率に関する質問
- 2. 効率的なツリーのソート
- 3. ソートの計算 - 効率
- 4. ソート行を効率的
- 5. は、効率的にMySQLの
- 6. のMySQL&PDO:効率
- 7. 異なるパラメータのアイテムを効率的にソートするには?
- 8. Mysqlのメモリ効率と型宣言
- 9. より効率的なデータテーブルのソート
- 10. 1から100までの90%で効率的にソートする
- 11. mysqlから.csvファイルを複数の関連テーブルに効率的にインポートする
- 12. MySQLの - 別の属性で問い合わせるときにテーブルのソート効率的
- 13. MySQLとサブクエリをより効率的に作成する
- 14. 効率的なMySqlクエリ
- 15. 関数によるSQLの効率
- 16. ランク関数効率
- 17. R関数効率
- 18. 親子関係の効率
- 19. インデックスでソートするのが効率的でしょうか
- 20. 正確に3つの値を持つリストを効率的にソートする関数を作成する(Sage(python))
- 21. C#と.NET 3.5のイメージのサイズ変更の効率
- 22. MySQLで多数の行を効率的にINSERTするには?
- 23. dictをソートする...効率的な方法ですか?
- 24. リストとCSVファイルを使用した効率的なカウント/ソート
- 25. 数百万行のmysqlハードドライブの効率
- 26. MySQLの効率的なテーブルの複製
- 27. mySQLクエリは効率的ですか?
- 28. 関数のグラディエントを効率的にコーディング
- 29. 構造体の配列を効率的にソート
- 30. MySQL - キー効率の問題100%