在My-Sql上构建一个pre-desc行表,以便更快地搜索查询

时间:2012-07-08 20:21:30

标签: mysql

我正在尝试更快地在My-Sql数据库上搜索查询。

我在BOOKMARK表格中有800,000行。

当我使用此查询运行时

SELECT * FROM `BOOKMARK` WHERE `topic` = 'Apple'
Showing rows 0 - 29 ( 501 total, Query took 0.0008 sec)

快死了!

我对每一行都有总分,并希望先找到好的一行。

SELECT * FROM `BOOKMARK` WHERE `topic` = 'Apple' ORDER BY total DESC
Showing rows 0 - 29 ( 501 total, Query took 0.4770 sec) [b_total: 9.211558703193814 - 1.19674062055568]

现在是0.5秒!!

这对我来说是一个很大的问题。

以下是表格信息。

* There are 20,000 different topics in this table.
* total number exist between 0-10
* The server calculate total points once a day.

我原以为如果表格按每个主题的总数排序,则搜索查询不必包含'ORDER BY total DESC'。

如果表格每天检查一次订单,它将节省大量时间。

有没有办法让这种情况发生?

1 个答案:

答案 0 :(得分:0)

非常简单。

我使用PhpMyAdmin并更改了操作菜单上的设置。

如下图所示。

enter image description here

在此之后,

SELECT * FROM `BOOKMARK` WHERE `topic` = 'Apple'

我运行了这个查询并向我显示了总值为DESC的结果。

完美!!