select count(0) from table1 where datatime > '2012-07-09 00:00:00';
随着数据量的变多,花费的时间会变长
有没有什么方法查找100万条数据的总量和查找10万条数据总量所花费的时间差不多
19 个解决方案
#1
count难于优化,从硬件方面想想办法
#2
datetime上建索引
#3
count没有办法优化。datetime是否有索引。
#4
datetime上建索引啊
#5
索引什么的都有,没法优化的话,那新浪微博之类的网站,n多数据都怎么统计的总数?
#6
唯一的方法就是添加索引 datatime
#7
#8
增加了索引,可还是会因为所查数据的变多,导致查询时间变长,,
#9
如果仅是 select count(0) from table1 where datatime > '2012-07-09 00:00:00'; ,在DATETIME上有索引的情况下应该不会太慢。
贴出你的 explain select count(0) from table1 where datatime > '2012-07-09 00:00:00'; 结果以供分析。
贴出你的 explain select count(0) from table1 where datatime > '2012-07-09 00:00:00'; 结果以供分析。
#10
+----+-------------+-------+-------+---------------+--------------+---------+---
---+------+--------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------+--------------+---------+---
---+------+--------------------------+
| 1 | SIMPLE | con_1 | range | datatime | datatime | 4 | NULL | 189292 | Using where; Using index |
+----+-------------+-------+-------+---------------+--------------+---------+---
---+------+--------------------------+
1 row in set (0.07 sec)
还有其他的表用同样的语句,随着数据的变多,花费的时间也会变长
---+------+--------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------+--------------+---------+---
---+------+--------------------------+
| 1 | SIMPLE | con_1 | range | datatime | datatime | 4 | NULL | 189292 | Using where; Using index |
+----+-------------+-------+-------+---------------+--------------+---------+---
---+------+--------------------------+
1 row in set (0.07 sec)
还有其他的表用同样的语句,随着数据的变多,花费的时间也会变长
#11
从你的结果来看,索引已经使用了
#12
用是用上去了,可是万一数据再多,时间岂不是会变长?
另外,用于网站的数据库查询一般能承受的最长查询时间是多少??
#13
你现在的语句运行需要多久? 已经有索引了,应该不会太长。
#14
1 row in set (0.07 sec);时间是不长,但是我发现随着数据的变多,查询时间也会变长
另外,用于网站的数据库查询一般能承受的最长查询时间是多少,不会影响用户体验??
#15
0.5s 以内应该问题不大。
#16
发现随着数据的变多,查询时间也会变长 -- 这是必然的。有何疑问的。
另外,用于网站的数据库查询一般能承受的最长查询时间是多少,不会影响用户体验??
-- 这就参考与用户了。没有标准,反正越短越好。
另外,用于网站的数据库查询一般能承受的最长查询时间是多少,不会影响用户体验??
-- 这就参考与用户了。没有标准,反正越短越好。
#17
记录越多,时间耗费越多
#18
比较datetime要求的粒度是多细?
如果比较datetime的粒度是天,那可以把每天的记录数(在定期在低峰期跑PHP脚本之类的)预先统计好放到一张表里,在用户查询的时候,直接从这张表里取数据 。
如果比较datetime的粒度是天,那可以把每天的记录数(在定期在低峰期跑PHP脚本之类的)预先统计好放到一张表里,在用户查询的时候,直接从这张表里取数据 。
#19
另外一种办法就是维护一张统计用的中间表。
#20
#1
count难于优化,从硬件方面想想办法
#2
datetime上建索引
#3
count没有办法优化。datetime是否有索引。
#4
datetime上建索引啊
#5
索引什么的都有,没法优化的话,那新浪微博之类的网站,n多数据都怎么统计的总数?
#6
唯一的方法就是添加索引 datatime
#7
#8
增加了索引,可还是会因为所查数据的变多,导致查询时间变长,,
#9
如果仅是 select count(0) from table1 where datatime > '2012-07-09 00:00:00'; ,在DATETIME上有索引的情况下应该不会太慢。
贴出你的 explain select count(0) from table1 where datatime > '2012-07-09 00:00:00'; 结果以供分析。
贴出你的 explain select count(0) from table1 where datatime > '2012-07-09 00:00:00'; 结果以供分析。
#10
+----+-------------+-------+-------+---------------+--------------+---------+---
---+------+--------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------+--------------+---------+---
---+------+--------------------------+
| 1 | SIMPLE | con_1 | range | datatime | datatime | 4 | NULL | 189292 | Using where; Using index |
+----+-------------+-------+-------+---------------+--------------+---------+---
---+------+--------------------------+
1 row in set (0.07 sec)
还有其他的表用同样的语句,随着数据的变多,花费的时间也会变长
---+------+--------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------+--------------+---------+---
---+------+--------------------------+
| 1 | SIMPLE | con_1 | range | datatime | datatime | 4 | NULL | 189292 | Using where; Using index |
+----+-------------+-------+-------+---------------+--------------+---------+---
---+------+--------------------------+
1 row in set (0.07 sec)
还有其他的表用同样的语句,随着数据的变多,花费的时间也会变长
#11
从你的结果来看,索引已经使用了
#12
用是用上去了,可是万一数据再多,时间岂不是会变长?
另外,用于网站的数据库查询一般能承受的最长查询时间是多少??
#13
你现在的语句运行需要多久? 已经有索引了,应该不会太长。
#14
1 row in set (0.07 sec);时间是不长,但是我发现随着数据的变多,查询时间也会变长
另外,用于网站的数据库查询一般能承受的最长查询时间是多少,不会影响用户体验??
#15
0.5s 以内应该问题不大。
#16
发现随着数据的变多,查询时间也会变长 -- 这是必然的。有何疑问的。
另外,用于网站的数据库查询一般能承受的最长查询时间是多少,不会影响用户体验??
-- 这就参考与用户了。没有标准,反正越短越好。
另外,用于网站的数据库查询一般能承受的最长查询时间是多少,不会影响用户体验??
-- 这就参考与用户了。没有标准,反正越短越好。
#17
记录越多,时间耗费越多
#18
比较datetime要求的粒度是多细?
如果比较datetime的粒度是天,那可以把每天的记录数(在定期在低峰期跑PHP脚本之类的)预先统计好放到一张表里,在用户查询的时候,直接从这张表里取数据 。
如果比较datetime的粒度是天,那可以把每天的记录数(在定期在低峰期跑PHP脚本之类的)预先统计好放到一张表里,在用户查询的时候,直接从这张表里取数据 。
#19
另外一种办法就是维护一张统计用的中间表。