小编Jor*_*Day的帖子

在 MySQL 中,以块为单位查询整个表的最有效方法是什么?

如果我有一张桌子User,做这样的事情会更快:

SELECT * FROM user WHERE id > ? ORDER BY id LIMIT 10000

(每个后续查询都使用前最后一行的 id 作为参数)

或者使用带有偏移量的 LIMIT,如下所示:

SELECT * FROM user ORDER BY id LIMIT ?, 10000

(到目前为止检索到的记录总数是偏移量)。

作为一个额外的复杂因素,如果我想基于链接表连接执行类似的查询怎么办?就像说一个user可以属于多个角色,所以我想要一个查询

SELECT u.* FROM user u INNER JOIN user_roles ur ON ur.user_id = u.id WHERE ur.role_name IN ('Admin', 'SuperUser', 'etc.') LIMIT ?, 10000

连接是否会影响关于首选哪种样式查询的决定?

mysql performance limits paging

2
推荐指数
1
解决办法
3439
查看次数

标签 统计

limits ×1

mysql ×1

paging ×1

performance ×1