分页查询,查个 total 很难吗?

2018-04-02 10:42:22 +08:00
 wxsm

如题。一个破接口,后端开发人员三番五次说要不传 total,让我去别的地方取,说什么查个 total 相当全表扫,我真是服气。

14163 次点击
所在节点    程序员
95 条回复
GaryZ
2018-04-02 12:31:35 +08:00
他不会建索引么 你去别的地方取 去哪取 去他家么?
kunluanbudang
2018-04-02 12:34:18 +08:00
后端水平不行

楼主可以继续怼他
finab
2018-04-02 12:35:51 +08:00
√ 和他讲清楚,并提供相关文档给他查询 问题解决
× 上 V 站抱怨 毫无用处
sagaxu
2018-04-02 12:37:58 +08:00
数据量大时查 total 是很慢的,不带条件 count 一次主键几十秒很正常
q364553873
2018-04-02 12:38:33 +08:00
lz count 一个千万级的表试试。。
banks0913
2018-04-02 12:42:49 +08:00
@q364553873 新人求学习。那这种情况一般有什么样的解决方案?
notreami
2018-04-02 12:44:41 +08:00
数据库性能都严重影响了,为啥不上 ES 呢?
annielong
2018-04-02 12:45:56 +08:00
大数据按条件分页查询再带 count 真的很麻烦,尤其是条件复杂的时候,优化都不好优化,只能跑两次查询,还特别慢
kera0a
2018-04-02 12:46:24 +08:00
@banks0913 我记得 MySQL 是有优化的,单纯的 count(*) 应该不是全表,速度很快的
GoLand
2018-04-02 12:47:09 +08:00
后端说的没毛病,能不用尽量不用 total。前端不用考虑啥性能问题,但是后端要考虑。
sagaxu
2018-04-02 12:48:50 +08:00
@kera0a 那是古代的 myisam 引擎,现代关系型 db,count 都很慢
neop
2018-04-02 12:52:30 +08:00
话说前端去哪里取 total
sxlzll
2018-04-02 13:02:53 +08:00
1、可能很难,不了解数据量和存储不做评价
2、楼主是前端,只需要站在用户和前端的角度思考,total 是不是必须的,如果是,后端就必须做,至于难的问题,什么事都那么简单那还要我们工程师干嘛
EmdeBoas
2018-04-02 13:03:56 +08:00
最近也是碰到了这个问题....5000W 的表...不带条件查 total 报警了....最后用 kylin 解决了,美滋滋
winglight2016
2018-04-02 13:08:03 +08:00
@EmdeBoas kylin,这个之前我也想用,但是没找到合适的场景,大佬再深入讲讲?
brickyang
2018-04-02 13:08:13 +08:00
@banks0913 #6 可以维护一个字段,跟随增删 +/-1
lishunli
2018-04-02 13:09:54 +08:00
带 total 又要多查一次 db,要考虑量大性能问题什么。有总数就有可能查到最后一页,量大的话数据库查询最后几页还是很慢的。当然前提是数据多,如果就很少那无所谓了。
binux
2018-04-02 13:12:21 +08:00
这问题你去问 PM 啊,PM 说要做就做。
然后再让 PM 找后端 estimate story points,看 PM 乐意给排期不。
你操这个心干嘛。
hcymk2
2018-04-02 13:13:26 +08:00
@brickyang
对有查询条件的这个字段有用么?
nigelvon
2018-04-02 13:15:35 +08:00
不会做缓存?楼上说慢的我真是醉了,每次取数据都 count 一遍?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/443491

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX