相关疑难解决方法(0)

Count(*)vs Count(1) - SQL Server

只是想知道你们中的任何一个人是否Count(1)过度使用过Count(*),如果性能有显着差异,或者这只是从过去几天带来的遗留习惯?

(具体数据库是SQL Server 2005.)

sql sql-server performance

699
推荐指数
11
解决办法
36万
查看次数

是计数(索引列)比计数(*)快吗?

可能重复:
COUNT SQL函数的性能

大家好,我有非常大的表,我需要知道每个记录的数量,我的问题是,如果我运行它会减少运行时间:

select count(indexed column like my PK) from tbTest
Run Code Online (Sandbox Code Playgroud)

代替

select count(*) from tbTest
Run Code Online (Sandbox Code Playgroud)

sql sql-server

6
推荐指数
2
解决办法
1万
查看次数

COUNT(id) 查询花费的时间太长,哪些性能增强可能有帮助?

我有一个查询超时问题。当我做了一个:

SELECT COUNT(id) AS rowCount FROM infoTable;
Run Code Online (Sandbox Code Playgroud)

在我的程序中,我的 JDBC 调用在 2.5 分钟后超时。

我没有太多的数据库管理专业知识,但我目前的任务是支持旧数据库。在这个 mysql 数据库中,有一个 InnoDB 表:

+-------+------------+------+-----+---------+----------------+
| Field | Type       | Null | Key | Default | Extra          |
+-------+------------+------+-----+---------+----------------+
| id    | bigint(20) | NO   | PRI | NULL    | auto_increment | 
| info  | longtext   | NO   |     |         |                | 
+-------+------------+------+-----+---------+----------------+
Run Code Online (Sandbox Code Playgroud)

它目前的高 id 为 5,192,540,这是表中的近似行数。一些信息文本超过1M,一些非常小。每天添加大约 3000 行。机器有大量的可用磁盘空间,但没有很多额外的内存。行被读取并偶尔被修改但很少被删除,尽管我希望清除一些已经过时的旧数据。

我在一个较小的测试数据库上手动尝试了相同的查询,该数据库有 1,492,669 行,安装在磁盘空间较小的类似机器上,耗时 9.19 秒。

我在一个更小的测试数据库上手动尝试了相同的查询,该数据库有 98,629 行,耗时 3.85 秒。然后我为 id 添加了一个索引:

create index infoTable_idx on infoTable(id);
Run Code Online (Sandbox Code Playgroud)

并且随后的 …

mysql sql

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

标签 统计

sql ×3

sql-server ×2

mysql ×1

performance ×1