求助:刚刚我用mysql执行了一个count函数,咋么时间那么长呢?

发布网友 发布时间:2022-03-25 20:17

我来回答

6个回答

热心网友 时间:2022-03-25 21:46

select count(1) from user跟select count(*) from user效率基本是一样的。

我觉得可以加一个统计信息的表,把主题数,帖子数等数据放到这个表里,但是这样就会牺牲一些写的效率,因为每次发帖删贴都要更新这个表。但是如果写的时候操作数据一般不会太多,这个应该可以接受。

另外一个建议就是搞一个线程每隔多少时间来统计一下主题数,帖子数等数据,这样的数据就不是实时的了,但是那么大的数据量的时候这些数据的也么比较那么实时更新。

PS;bluedn,大数据量操作的sql语句尽量不要使用sql的函数,尽量取了数据之后通过程序来处理得到想要的结果。

热心网友 时间:2022-03-25 23:04

也不排除 主题数86814个,贴子数129486084篇,KLZ毕业数1953
是存储在 一个表的 3个字段上面了.

还有的可能就是, 这些信息,已经缓存起来了.
你每次打开页面,这3个信息,是从内存里面读取出来的.

热心网友 时间:2022-03-26 00:39

我刚刚找了一个业务数据库,测试了下,数据库是SQL2000,服务器4G内存,
数据库文件大小在50G以上。单表记录统计语句。
select object_name(id) tablename,8*reserved/1024 reserved,rtrim(8*dpages/1024)+'Mb' used
,8*(reserved-dpages)/1024 unused,8*dpages/1024-rows/1024*minlen/1024 free,
rows,* from sysindexes
where indid=1
order by reserved desc
测出来 某个表的行数 在 50000000 以上。
结果: select count(1) from TBus_History
5分钟了,都还没出来统计。

热心网友 时间:2022-03-26 02:30

4000w,20秒够快的了
第一次慢,第2次缓存结果了就快了

热心网友 时间:2022-03-26 04:38

改成 select count(1) from user 试试

热心网友 时间:2022-03-26 07:03

使用索引

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
13.758765s