mysql 分页优化
很多同学在做分页的时候可能会使用select count(*) as total from ….,然后再limit 。。。这种的方式来做,
其实这样就会造成了两次查询,事实上一条sql语句就可以了,使用SQL_CALC_FOUND_ROWS();
如代码:
1 | $sql = "SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT 0, 10"; |
2 |
3 | $softlist = $this->_db->fetchAll($sql); |
4 | $total = $this->_db->fetchRow('SELECT FOUND_ROWS() total'); |
这样一次查询就能得到分页所要的总数,自然简单效率又更高了。