查询的时候老是崩溃
没有碰到这种问题都是一律的解决方案: 分页,limit。 一看就是没撞到过墙。
用pdo链接上数据库之后,设置这个参数,非常隐晦的一个参数,一般人不知道
$PDOObject->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
然后上亿的数据行也是随便取,每条的返回速度都一致。
楼上说的都不准确,你要是分页查,查到后面,能让你抓狂,你信不信,每次查询都要好久
有一个好的办法
select id from A where XXXXXXX limit xxx offset xxx;
select * from A where id in (上一步查询id);
这样会比较好些,速度基本不会有问题, 可以试一下这种办法
分页查询就可以了.
为毛如此大惊小怪.
select xx
from yy where id>={$id} limit 50
如此写,可以避免越往后分页效率越低.但说句实在的,200万,也没多少数据
SELECT Title FROM Information INNER JOIN (
SELECT ID FROM Information where IsDeleted =0 ORDER BY `CreateTime` LIMIT 1000,20
) AS x USING(`id`);
SELECT Title FROM Information where IsDeleted =0 ORDER BY `CreateTime` LIMIT 1000,20
上面的写法比下面快 30%
2 回答3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
3 回答1.4k 阅读
不要用分页,查到后面越查越慢。
因为
这种那个10000是会查询然后丢弃的。
正确的做法是用游标。
假设你的游标字段为
id
这种是利用mysql查询筛选【一部分你要的数据,不存在数据丢弃】。所以速度一直都很快