我有一个包含40k +行的表,我想知道查询结果表的实际行数
`SELECT COUNT(*) FROM `pricelist` GROUP BY `vendor_id`;`
结果表位于pricelist
行计数附近,因为少量vendor_id
正在重复。
搜索互联网,我发现唯一的方法就是执行类似的查询
SELECT COUNT(*) FROM `pricelist`;
然后
$array = $pdo->fetchAll()
和
count($array);
将获得实际的行数,但是$ array变量非常大,并且memory_limit = 256M时我的内存已耗尽。
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes)
当然,我可以为内存限制添加一些额外的MB,但是如果表将包含100万行怎么办?人们如何处理大型数据库中的这种情况?
$query = "SELECT COUNT(*) FROM ".UPLOAD_TABLE." GROUP BY `vendor_id`;";
$stmnt = $this->connection->prepare($query);
$stmnt->execute();
$tableSize = count($stmnt->fetchAll(PDO::FETCH_NUM));