MYSQL计数(不同)分组依据

MYSQL计数(不同)分组依据,mysql,Mysql,此选择可保持超时: SELECT COUNT(DISTINCT `invoices`) FROM `data` WHERE date BETWEEN '2013-07-01' AND '2014-06-30' GROUP BY `store` 我对发票、日期、商店和发票、商店、日期进行了索引。感谢您的帮助。试试这个 SELECT store, COUNT(DISTINCT invoices) FROM data WHERE date BETWEEN '2013-07-01' AND

此选择可保持超时:

SELECT COUNT(DISTINCT `invoices`) 
FROM `data` 
WHERE date BETWEEN '2013-07-01' AND '2014-06-30' 
GROUP BY `store`
我对发票、日期、商店和发票、商店、日期进行了索引。感谢您的帮助。

试试这个

SELECT store, COUNT(DISTINCT invoices) 
FROM data 
WHERE date BETWEEN '2013-07-01' AND '2014-06-30' 
GROUP BY store
试一试

这是一把小提琴,没有
日期
列,请检查


我也有同样的问题。我想你正在用一张大桌子工作。我通过更改配置文件中的一些值来解决此问题:

key_buffer = 128M
thread_stack = 128K
thread_cache_size = 8
table_cache = 8192
max_heap_table_size = 256M
query_cache_limit = 4M
query_cache_size = 512M

innodb_file_per_table
innodb_buffer_pool_size = 4G 

innodb_log_file_size = 512M
skip_name_resolve

join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M 

key_buffer_size         = 64M
sort_buffer_size        = 1M
tmp_table_size          = 256M
max_heap_table_size     = 512M
read_buffer_size        = 64K
read_rnd_buffer_size    = 64K
myisam_sort_buffer_size = 256M

但这些值会随着您的电脑和工作的不同而变化。我建议您搜索一下“大数据mysql配置”。你会发现一些关于它们含义的信息。顺便说一下,表中还应该有一个主键。我认为这也会影响性能。最后,您应该检查mysql中的首选项。您可能需要增加sql编辑器部分下的mysql会话设置。我希望它能帮上忙。

为什么您要通过
存储进行聚合,但不将其包含在
选择中?
?这就是问题所在,同时创建了一个临时表,如@Marcx的查询。谢谢,临时表真的很有帮助。是的。非常感谢。
key_buffer = 128M
thread_stack = 128K
thread_cache_size = 8
table_cache = 8192
max_heap_table_size = 256M
query_cache_limit = 4M
query_cache_size = 512M

innodb_file_per_table
innodb_buffer_pool_size = 4G 

innodb_log_file_size = 512M
skip_name_resolve

join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M 

key_buffer_size         = 64M
sort_buffer_size        = 1M
tmp_table_size          = 256M
max_heap_table_size     = 512M
read_buffer_size        = 64K
read_rnd_buffer_size    = 64K
myisam_sort_buffer_size = 256M