了解一些MySQL优化提示

时间:2011-03-29 19:43:10

标签: mysql optimization max

嘿,我正在寻找一些方法来让我的MySQL查询更加优化,我买了一些付诸实践但是对于一些人我希望理解他们为什么被推荐。

例如,我没有使用“LIMIT 10000,10”,因为我知道MySQL读取10010行,抛弃10000并返回10。

现在我想知道的是:

参考这篇文章:http://forge.mysql.com/wiki/Top10SQLPerformanceTips

“使用聪明的密钥和ORDER BY代替MAX”

  1. 什么是“聪明的钥匙”?

  2. MySQL采用什么执行路径来计算MAX,建议避免使用它。

  3. 谢谢。

2 个答案:

答案 0 :(得分:4)

一个聪明的密钥是一个密钥,它允许mysql根据所需的顺序读取行,因此不使用filesort或临时表进行排序。

必须是主键。要了解何时可以使用这样的密钥进行排序,请阅读这篇非常有用的文章:http://dev.mysql.com/doc/refman/5.0/en/order-by-optimization.html

答案 1 :(得分:1)

我将在问题1中进行一次尝试并说“聪明的钥匙”是桌子上的主键,当按某种方式订购时它具有价值。 (例如,一个酒店数据库,其中包含一个跟踪客人办理登机手续的表格。使表格的主键成为办理登机手续的TimeStamp。然后,当您需要知道最近的签到时,您可以通过主要订单键按降序排列)。我想这比使用自动递增整数作为主键和时间戳字段的表更快。

您可以在this stackoverflow discussion中找到问题2的答案。它应该让您了解执行路径,但不一定要将其与链接中提到的聪明密钥进行比较。