MySQL はquicksort
、ユーザーが要求したときに結果セットをソートするために使用します。現在、平均でquicksort
の効率がありO(Nlog N)
、これは許容範囲内です (最悪の場合は に達することもありますO(N^2)
が、ほとんどの場合はこれで問題ありませんが、常に 6 桁のピン番号などの列があるとします。特定のクエリが何百万もの行をフェッチし、そのキーに基づいて並べ替えます.そのような場合、radix-sort
線形順序を与えるより良いオプションではないでしょうか?何か方法はありますか (おそらくプラグインか何かを書く)定義したカスタム基数ソートを使用して、指定されたキーに基づいて結果セットをソートするMySQL 関数、たとえばmyorderby
、この調整は価値がありますか?
1 に答える
1
MySQLソースを取得して、独自の並べ替え関数を挿入することができます。それが本当に速いなら、あなたはそれをコミュニティにコミットすることさえできます。
それが価値があるかどうかは、それがかかる努力の量に依存します。このような変更を加えてMySQLを実行するのはかなりの作業だと思います。また、簡単に更新できるようにしたいと思うでしょう。したがって、本当にスピードゲインが必要な場合や、将来のバージョンでソートをデフォルトにすることができない場合を除いて、それだけの価値はないと思います。ソートがボトルネックになるのを経験したことはありません。
于 2012-09-15T16:10:41.833 に答える