炸!业界困难,跨库分页的几种常见方案
步调五:既然获得了time_min在全局的offset,就相等于有了全局视野,按照第二次的功效集,就可以或许获得全局offset 1000 limit 5的记录 第二次查询在各个分库返回的功效集是有序的,又知道了time_min在全局的offset是994,一起排下来,轻易知道全局offset 1000 limit 5的一页记录(上图中黄色记录)。 这种要领的利益是:可以准确的返回营业所需数据,每次返回的数据量都很是小,不会跟着翻页增进数据的返回量。 帅气不帅气!!! 总结 本日先容了办理“跨N库分页”这一困难的四种要领: 要领一:全局视野法 (1)SQL改写,将
改写成
(2)处事层对获得的N*(X+Y)条数据举办内存排序,内存排序后再取偏移量X后的Y笔记录; 这种要领跟着翻页的举办,机能越来越低。 要领二:榨取跳页查询法 (1)用正常的要领取得第一页数据,并获得第一页记录的time_max; (2)每次翻页,将
改写成
以担保每次只返回一页数据,机能为常量。 要领三:应承恍惚数据法 (1)SQL查询改写,将
改写成
机能很高,但拼接的功效集不精准。 要领四:二次查询法 (1)SQL改写,将
改写成
(2)多页返回,找到最小值time_min; (3)between二次查询
(4)配置假造time_min,找到time_min在各个分库的offset,从而获得time_min在全局的offset; (5)获得了time_min在全局的offset,天然获得了全局的offset X limit Y; 文章较量长,但愿各人有收成。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |