公司做的是一个交易系统后台信息的展示 交易量每个月大概会有几百万笔 不排除后期会有几千万条记录甚至上亿的交易记录 目前几十万笔交易的查询展示我都觉得还好 把 sqlalchemy 查到的 resultset 遍历一遍 放到一个列表中 然后转换成 json 返回给前台 用 jq 的 datatables 的去展示 但是如果几千万条的记录 我中间要怎么处理吗 程序卡在了把结果集放到列表的这个过程中 求大佬们指教下 没写过这么大数据量的东西
1
loongwang Mar 11, 2018
不做分页吗
|
2
xpresslink Mar 11, 2018
说心理话没明白你的需求。
使用的数据库的原则就是,尽量减小 IO 交互。 方案一、一次性把要用的数据全部取出,放在内存缓存,以后不再访问数据库。 方案二、每次只取用到的最小集合。 为了支持方案二,所有数据库都支持 where 子句和 limit 语法。 select * from table limit m,n 其中 m 是指记录开始的 index,从 0 开始,表示第一条记录 n 是指从第 m+1 条开始,取 n 条。 在常见 ORM 中: SA 用的是.filter().limit().offset() 来实现对应的 SQL Django 的 ORM 更简洁一些,Model.objects.filter()[m:n] |
4
Linxing OP @xpresslink 研究了大半天 我大概摸清套路了
|