0

MySQLquicksort在用户请求时对结果集进行排序。现在平均而言,quicksort效率为O(Nlog N),这是可以接受的(即使它最坏的情况有时可能达到O(N^2)。现在对于大多数情况来说这很好,但想象一下我有一个列,比如说,pin-number,它总是有 6 位数字。并且一个特定的查询会获取数百万行并根据该键对它们进行排序。在这种情况下radix-sort,给出线性顺序不是更好的选择吗?有什么办法(也许写一个插件或其他东西)我可以引入一个新的MySQL 函数,比如说myorderby,它将通过我定义的自定义基数排序基于给定键对结果集进行排序?其次,这个调整是否值得?

4

1 回答 1

1

您可以获取 MySQL 源代码并注入您自己的排序功能。如果确实更快,您甚至可以将其提交给社区。

是否值得,取决于付出的努力。我认为通过这样的修改来运行 MySQL 是一项相当大的工作,而且您也希望能够轻松更新。因此,除非您真的需要速度增益和/或您能够将您的排序设置为未来版本的默认值,否则我认为这是不值得的。我从来没有经历过排序成为瓶颈。

于 2012-09-15T16:10:41.833 回答