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