首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于非常简单的select,MySQL性能很差

对于非常简单的select,MySQL性能很差
EN

Stack Overflow用户
提问于 2011-11-05 22:58:16
回答 2查看 213关注 0票数 0

我的mysql查询的性能有问题。我有一张很大的桌子

代码语言:javascript
复制
create table query(
    id  Integer,
    session Integer,
    time    Integer,
    name    Integer,
    region  Integer);

数据量-2 gb。我已经在"name“上建立了索引-7 gb。

我的查询如下:

代码语言:javascript
复制
select count(id) from query where name=somevalue;

我不会添加任何新数据,我使用了标准的"my-huge.cnf“。尽管如此,我每次查询花费了大约4-5秒,我将做大约9-10*45000个查询。如果我的计算机有2 2gb内存,我应该更改哪些选项来提高速度。

EN

回答 2

Stack Overflow用户

发布于 2011-11-05 23:03:05

count(*)可能会稍微快一点。

代码语言:javascript
复制
select count(*) as rowcount from query where name=somevalue;

此外,您还可以考虑将计数缓存在一个单独的表中,并从该表中进行查询。

票数 2
EN

Stack Overflow用户

发布于 2011-11-05 23:07:54

如果您从不更改数据,那么应该考虑对所有可能的名称(SELECT DISTINCT(name) FROM query)运行一次查询,然后将COUNT()的值存储在缓存中。为此,您可以创建一个cache表,将nametotal作为列,并用为每个名称运行SELECT name, COUNT(*) AS total FROM query WHERE name = 'name'的结果填充它。

然后您将简单地SELECT total FROM cache WHERE name = 'name',这将是非常快的。

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

https://stackoverflow.com/questions/8020971

复制
相关文章

相似问题

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