【发布时间】:2016-04-11 16:04:37
【问题描述】:
在我的网络应用程序中,我有一个进行两次数据库调用的路由。一个以降序从 mysql 表中获取 15 个图像路径并将它们打印到 <img> 标记,另一个循环整个表以用于分页目的。所以这两个调用势必会减慢我的网络应用程序的速度,所以如果可能的话,我该如何优化查询。代码如下:
router.get('/board', function(req, res){
//GET PAGE NUMBER FOR PAGINATION
if(req.query.page){
var page = parseInt(req.query.page);
}else{
page = 1;
}
var start_from = (page - 1) * 15,
rows,
total_pages,
getPages = connection.query('SELECT COUNT(*) FROM posts', function(err, result){
rows = result.length;
total_pages = parseInt(Math.ceil(rows / 15));
}),
sql = connection.query('SELECT ID, Title, Img_path FROM posts ORDER BY ID DESC LIMIT ' + start_from + ', 15', function(err, result){
res.header("Content-Type", "text/html; charset=utf-8");
res.render('board', {print: result, pages: total_pages, page_no: page });
});
});
【问题讨论】:
-
SELECT ID FROM posts?count查询呢??? -
@ceadreak 是的,这是一个愚蠢的错误。还有什么我可以做的吗?