加快ORDER BY 查询速度

以下内容来自mysql5.1手册:http://dev.mysql.com/doc/refman/5.1/zh/optimization.html#explain

想要提高 ORDER BY 的速度,首先要看MySQL能否使用索引而非额外的排序过程。如果不能使用索引,可以试着遵循以下策略:

 

  • 增加 sort_buffer_size 的值。

     

  • 增加 read_rnd_buffer_size 的值。

     

  • 修改 tmpdir,让它指向一个有很多剩余空间的专用文件系统。如果使用MySQL 4.1或更新,这个选项允许有多个路径用循环的格式。各个路径之间在 Unix 上用冒号(':')分隔开来,在 Windows,NetWare以及OS/2 上用分号(';')。可以利用这个特性将负载平均分摊给几个目录。注意:这些路径必须是分布在不同物理磁盘上的目录,而非在同一个物理磁盘上的不同目录。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL中,我们可以使用ORDER BY子句来对查询结果进行排序。然而,当数据库中包含大量数据时,对查询进行排序可能会导致查询性能下降。为了解决这个问题,我们可以在查询中添加一个ORDER BY索引来加速排序操作。 ORDER BY索引是一个特殊类型的索引,它与排序顺序有关。它不仅包含要排序的列的值,还包含用于排序的列的排序顺序。 创建ORDER BY索引时需要注意一些事项: 1. 使用正确的排序顺序:如果查询中使用的是ASC排序,则ORDER BY索引也必须使用ASC排序;如果查询中使用的是DESC排序,则ORDER BY索引也必须使用DESC排序。 2. 考虑添加其他列:如果查询中还包含其他列,可以考虑添加这些列到ORDER BY索引中,以减少后续对表的访问次数。 3. 了解索引的限制:ORDER BY索引只适用于特定的查询场景,例如只对一个或多个列进行排序的查询。如果有其他条件或涉及多个表的连接查询,则ORDER BY索引可能不起作用。 创建ORDER BY索引的语法如下: CREATE INDEX index_name ON table_name (column1 [ASC|DESC], column2 [ASC|DESC], ...); 在使用ORDER BY索引时,我们可以看到查询执行速度明显加快。这是因为ORDER BY索引允许数据库直接按照索引中的排序顺序返回结果,而无需对查询结果进行排序。但是,有时候创建ORDER BY索引可能会导致插入、更新或删除数据的性能下降,因此需要根据具体情况进行权衡和测试。 总之,使用ORDER BY索引可以提高查询性能,特别是在处理大量数据时。但是在使用前需要了解其限制,并根据具体情况进行权衡和测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值