我有一个 mysql 内存表,其中包含分配给每一行的优先级。我每 2 分钟创建一次这个表,这个表被调用几乎 100 次/秒。
它包含大约 800 行。
我正在运行的查询是这样的:
select * from table order by priority limit 0,20
the order by
我想优化这个查询。我可以在创建表时按排序顺序放置数据,并且可以假设如果我删除子句,提取的数据将始终根据优先级排序。
谢谢
我有一个 mysql 内存表,其中包含分配给每一行的优先级。我每 2 分钟创建一次这个表,这个表被调用几乎 100 次/秒。
它包含大约 800 行。
我正在运行的查询是这样的:
select * from table order by priority limit 0,20
the order by
我想优化这个查询。我可以在创建表时按排序顺序放置数据,并且可以假设如果我删除子句,提取的数据将始终根据优先级排序。
谢谢
您可以在数据库端做 3 件事,在实际的 HTML/PHP 端做 1 件事来优化这个查询:
使用带有“优先级”索引的 ISAM 表 @ http://dev.mysql.com/doc/refman/5.0/en/create-index.html并使其尽可能小,例如“优先级”SMALLINT(3) UNSIGNED清零。最后一点,限制,你已经得到了。
使用操作码缓存器缓存结果并将它们直接传递到人们的浏览器,如果信息只是经常更改,而不需要重新查询数据库,例如http://en.wikipedia.org/wiki/List_of_PHP_accelerators