我目前正在加速一个网站,即从查询返回300,000多行。虽然我不认为这是数据库服务器上的太多负载,但此查询是在一个while循环中发生的,具体取决于用户拥有的“画廊”数量。减少mySQL查询和时间
例如,乔在他的帐户中有10个画廊。这些画廊中的每一个都有x个图像,其中有这些图像的评论数量为x。因此,当前正在运行查询...
SELECT count(*) as total
FROM galleryimage a
INNER JOIN imagecomments b ON a.id=b.imgId
WHERE a.galleryId='".$row['id']."'
AND b.note <> ''
...是334000行翻翻所有galleryimage表和imagecomments表76000行,返回上每家画廊的结果。在单个图库上运行的查询会返回约578毫秒的结果,但对于许多图库,例如30-40,您可能正在查看17+秒的页面加载时间。有关如何处理此问题的任何建议?
我不能改变数据库架构....
查询的画廊ID
SELECT a.id,
a.created,
a.name,
b.clientName,
a.isFeatured,
a.views,
a.clientId
FROM gallery a
INNER JOIN client b
ON a.clientId = b.id
WHERE a.isTemp = 0
AND a.clientRef = '{$clientRef}'
AND a.finish='1'
AND a.isArchive='0'
ORDER BY created
DESC
当时建立查询你有所有的画廊IDS? – ApplePie 2012-07-22 21:33:01
@ AlexandreP.Levasseur - 是的,我做 - 更新的问题 – Bungdaddy 2012-07-22 21:35:44
你说你不能改变体系结构,但是你可以添加表吗? – Tschallacka 2012-07-22 21:40:32