相关疑难解决方法(0)

SQL Server计数很慢

计算具有大量数据的表可能非常慢,有时需要几分钟; 它还可能在繁忙的服务器上生成死锁.我想显示实际值,NOLOCK不是一个选项.

我使用的服务器是SQL Server 2005或2008 Standard或Enterprise - 如果重要的话.我可以想象SQL Server维护每个表的计数,如果没有WHERE子句,我可以很快得到这个数字,对吗?

例如:

SELECT COUNT(*) FROM myTable
Run Code Online (Sandbox Code Playgroud)

应立即返回正确的值.我是否需要依赖统计数据进行更新?

sql sql-server sql-server-2005 count sql-server-2008

35
推荐指数
3
解决办法
3万
查看次数

mysql COUNT()num行太慢了

我试图从一个有22米行的表中获取用户的订阅者数量.

我的sql如下:

SELECT
    COUNT(id)
FROM
    subscribers
WHERE
    suid=541839243781
Run Code Online (Sandbox Code Playgroud)

需要12.6020秒才能加载

然而,以下相同的查询(获取用户的订阅)只需要0.0036秒加载(似乎没问题)

SELECT
    COUNT(uid)
FROM
    subscribers
WHERE
    uid=541839243781
Run Code Online (Sandbox Code Playgroud)

我的说明:

    id  select_type     table            type   possible_keys    key    key_len     ref     rows                 Extra
     1     SIMPLE    dvx_subscribers    index        4            4       16        NULL    22041275    Using where; Using index
Run Code Online (Sandbox Code Playgroud)

显示创建表:

    CREATE TABLE `subscribers` (
 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
 `sid` bigint(20) unsigned NOT NULL,
 `uid` bigint(20) unsigned NOT NULL,
 `suid` bigint(20) unsigned NOT NULL,
 `date` datetime NOT NULL,
 KEY `id` (`id`),
 KEY …
Run Code Online (Sandbox Code Playgroud)

mysql indexing

4
推荐指数
1
解决办法
2096
查看次数