如果我经常ORDER BY o.creationDate - 我应该用@Index标记creationDate吗?

时间:2010-10-26 02:37:03

标签: sql mysql

我知道数据库上的索引是提高查询性能的好方法,但是通过在查询中经常通过creationDate命令给定对象的creationDate属性创建索引,我会获得多少性能?这经常“按o.creationDate排序”是否可以证明为creationDate属性创建索引?

2 个答案:

答案 0 :(得分:1)

是的,如果从您的选择返回的结果集很大。请记住,在过滤后对结果集执行排序(逻辑上),但是好的优化器也可以在过滤期间使用索引进行排序。如果要返回包含五行的结果集,则排序很简单。如果它包含一百万行,那么(基于B树的)索引肯定会有所帮助。但是,哈希索引无济于事。

您可以从以下文章中获取有关MySQL和ORDER BY列索引的更多详细信息:Database Index Tips

答案 1 :(得分:1)

这取决于你的读/写比率是否合理,但它会有帮助吗?根据您的使用说明是,creationDate上的索引将允许它运行查询,而不会在其末尾执行额外的排序操作。 You can find a full write-up on ORDER BY optimization here

我想说如果这是一个Web应用程序或任何其他高读取:写入比率应用程序,那么,这是值得的。请记住,索引确实有成本,并且在添加该列时,该列的插入或更新将更加昂贵,但是当您的读取远远超过写入时,它通常 值得。