有没有办法在比较两列时删除mysql中的文件排序?

时间:2011-09-16 06:05:37

标签: mysql phpmyadmin

我的查询显示如下:

SELECT * FROM table 
WHERE field like '%keyword%' 
ORDER BY (vote_up-vote_down) DESC

排序正在运行我的sql资源,有什么办法可以改进吗?

1 个答案:

答案 0 :(得分:0)

NO ,因为mysql需要评估表达式并计算vote_up-vote_down的实际结果。

因此,文件排序是不可避免的

您可以检查以下内容,以便在排序

上获得更快的性能

http://dev.mysql.com/doc/refman/5.0/en/order-by-optimization.html

  

如果要增加ORDER BY速度,请检查是否可以让MySQL使用索引而不是额外的排序阶段。如果无法做到这一点,您可以尝试以下策略:

     

增加sort_buffer_size变量的大小。

     

增加read_rnd_buffer_size变量的大小。

     

每行使用较少的RAM,只需将列声明为保存存储在其中的值所需的大小。例如,如果值不超过16个字符,则CHAR(16)优于CHAR(200)。

     

将tmpdir更改为指向具有大量可用空间的专用文件系统。此外,此选项接受以循环方式使用的多个路径,因此您可以使用此功能将负载分散到多个目录中。路径应该用Unix上的冒号字符(“:”)和Windows,NetWare和OS / 2上的分号字符(“;”)分隔。路径应该是位于不同物理磁盘上的文件系统中的目录,而不是同一磁盘上的不同分区。