首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >优化前10视图的mysql查询

优化前10视图的mysql查询
EN

Stack Overflow用户
提问于 2014-06-05 15:40:34
回答 1查看 29关注 0票数 0

我有一个mysql表,用于跟踪特定页面的视图:

代码语言:javascript
运行
复制
CREATE TABLE `views` (
  `time` datetime NOT NULL,
  `remote_host` varchar(255) default '',
  `r_clock` varchar(255) default '',
  `r_timezone` varchar(255) default '',
  `referer` varchar(255) default ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8 

我为获得前10名而编写的查询是:

代码语言:javascript
运行
复制
select count(*) as count, r_clock
from views where r_clock <> "html5" and r_clock not like "%-none"
group by r_clock
limit 10;

但是,这个查询似乎非常慢,因为我们获得了很多视图,使用此查询,mysql将检查表中的每一行。有什么简单的方法来优化查询吗?我认为我无法更改数据库中的列,尽管添加索引可能是可以的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-05 15:55:29

解决方案是在r_clock上创建索引,并在查询开始时停止使用%。如果您使用"%-none",您将无法使用索引,它也不会有帮助。

如果您可以将查询(以及使用它的数据)更改为末尾的% (例如,"none-%"),这将允许它使用索引并加快它的速度。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24064498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档