Mysql海量数据分表分库如何列表分页?

1.现在使用ElasticSearch了。基于Lucene的解决方案

2.必须将mysql里的数据写入到类似hbase这样的分布式数据库,查询快。但分页、查询的话,可以在hbase前加一层solr,用于建立数据索引

如何对分库后的数据进行分页查询?

yeyingsheng 发布于 2015/04/21 10:18
阅读 7K+
收藏 1
 si项目,现在连接6台mysql数据库,路由分库算法是根据id的hash值%6,根据值不同分别存入6台数据库。现在不知道如何做分页查询列表,请问有谁知道吗 
 
 
收藏 (1)

 分享
 
0
 
 
三阶魔方

2015/04/21 13:50

1、直接使用跨库的多表联合查询。不建议。

2、向6台数据库server均发送一个查询请求,然后对所有查询结果进行汇总,再处理分页逻辑。

3、建立一个总数据库,只负责维护主键和必要的索引,以供分页查询。

4、使用redis维护一个主键序列,分页操作就是截取该序列的一部分,其结果就是主键id集合。拿到id后便可以映射到多台mysql服务器上查询数据了。但毕竟数据被分布式存储了,取到完整结果集必须要多次、多台的数据库访问,这个肯定是避免不了。

注:“多台”数据库访问的问题无解,但同台“多次”数据库访问的问题可以通过程序优化。

 
yeyingsheng

2015/04/21 14:35
感觉使用redis维护一个主键序列比较靠谱一点,但是没有用过
 
0
 
 
hylent

2015/04/21 13:07
另建一个主库,有所有分库的数据
yeyingsheng

2015/04/21 14:45
回复 @hylent : 你说的也挺有道理,不知道大家采取最多的方式是什么?
hylent

2015/04/21 14:38
回复 @1157624952 : 嗯,单点,可以主备。最佳答案中的,在redis里维护索引的方法,也不错,不过,就要和业务挂钩了,多种排序方式需要维护多个序列。不过我还是觉得,数据放在内存中不太稳妥。。
yeyingsheng

2015/04/21 14:32
这样的话就会出现主机单点问题了
 
0
 
 
Jack_Q

2015/04/21 13:20
有没有使用cobar或mycat
yeyingsheng

2015/04/21 14:33
没有使用
 
0
 
 
Brin想写程序

2015/04/21 14:28

复杂查询情况下,只去前20页的内容。。也就是默认取200条,然后200*10做好排序,然后去前200条,分20页给用户显示出来。

对于基于日期,序号的有序数组的分页,可以记录当前分页最后一个的被分页的值,作为stub,然后往后组装。

Brin想写程序

2015/04/21 16:58
回复 @1157624952 : 直接查各个数据库啊。。跟路由算法没关系。。
yeyingsheng

2015/04/21 15:52
@Brin想写程序 额,我是根据路由算法插入相应的数据库的,没法每个查啊
Brin想写程序

2015/04/21 15:24
回复 @1157624952 : limit 200,每个表都执行一遍。。
yeyingsheng

2015/04/21 14:46
但是我如何去取前二十页呢
 
0
 
 
hylent

2015/04/21 14:42

单纯就索引来说的话,可以试试一些专门做全文索引的服务软件。

不过这个只是我的想法,功能上应该可以,没实际中这样跑过,不知道稳定性怎么样

yeyingsheng

2015/04/21 14:47
这个没有试过
 
0
 
 
郭幻程

2015/04/21 16:24

向每个库发送同样的数据,汇总,排序,分页

为毛不用mycat

 
 
0
 
 
匿名t3a

2015/04/21 21:18

你需要一个中间件

试试 Amoeba for MySQL 看看行不行

mysql分库 分页查询的更多相关文章

  1. oracle 的分页查询与mysql 的分页查询

    oracle 的分页查询: select * from (select o.*,rownum rn  from Persons o) where rn >40 and rn <=60 : ...

  2. Mysql中分页查询两个方法比较

    mysql中分页查询有两种方式, 一种是使用COUNT(*)的方式,具体代码如下 1 2 3 SELECT COUNT(*) FROM foo WHERE b = 1;   SELECT a FROM ...

  3. Oracle和MySql的分页查询区别和PL/SQL的基本概念

    Oracle和MySql的分页查询区别:     Oracle的分析查询,之前Oracle的分页是使用伪列 ROWNUM 结合子查询实现,mysql的分页更简单,直接使用 LIMIT 关键字就可以实现 ...

  4. 用MySQL实现分页查询

    MySQL中实现分页查询语句: //定义分页需要的变量 int pageNow=2;//当前页 int pageSize=3;//指定每页显示3条记录 int pageCount=1;//该值是计算出 ...

  5. 【MySQL】分页查询实例讲解

    MySQL分页查询实例讲解 1. 前言 本文描述了团队在工作中遇到的一个MySQL分页查询问题,顺带讲解相关知识点,为后来者鉴.本文的重点不是"怎样"优化表结构和SQL语句,而是探 ...

  6. MySQL 的分页查询 SQL 语句

    MySQL一般使用 LIMIT 实现分页.基本语句为: SELECT ... FROM ... WHERE ... ORDER BY ... LIMIT ... 在中小数据量的情况下,这样的SQL足够 ...

  7. MySql实现分页查询的SQL,mysql实现分页查询的sql语句 (转)

    http://blog.csdn.net/sxdtzhaoxinguo/article/details/51481430 摘要:MySQL数据库实现分页查询的SQL语句写法! 一:分页需求: 客户端通 ...

  8. MySql实现分页查询的SQL,mysql实现分页查询的sql语句

    一:分页需求: 客户端通过传递start(页码),limit(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySql数据库提供了分页的函数limit m,n,但是该函数的用法和我们的 ...

  9. [转]MySQL实现分页查询

    原文地址:https://blog.csdn.net/starleejay/article/details/78802610 limit 基本实现方式 一般情况下,客户端通过传递 pageNo(页码) ...

随机推荐

  1. ui component 是一个前端 mvc 开发框架

  2. btcpool之JobMaker

    一.简介 JobMaker从kafka消息队列接收rawgbt消息,然后解码该消息中的gbt数据,生成Job,发送到kafka消息队列. 二.StratumJob结构 StratumJob结构是Job ...

  3. ln -s软链接文件算文件吗

    场景: 开发A在windows环境下完成了开发,配置管理员cm搭建jenkins在centos环境下编译,cm编译失败,但是开发A在他的windows环境下可以编译过,最后发现是某几个so文件的软链接 ...

  4. 我对MVC的理解

    1.    MVC :M模型  V视图  C控制器 1.1  模型是用来处理业务逻辑的,里面由许多类构成 1.2  视图是用来显示界面的 1.3  控制器是一个中间人,它通过视图的提交方式(post, ...

  5. IDEA搭建scala开发环境开发spark应用程序

    通过IDEA搭建scala开发环境开发spark应用程序   一.idea社区版安装scala插件 因为idea默认不支持scala开发环境,所以当需要使用idea搭建scala开发环境时,首先需要安 ...

  6. linux文件与目录的创建

    在Linux初期的学习中,是我们对基础命令的掌握,首先我们学习文件与目录的创建,分别有一些命令与选项,我们依次来看: 1:在Linux系统中,一切服务皆以文件的形式表现,脚本文件,服务配置文件,记事本 ...

  7. Centos7下使用Ceph-deploy快速部署Ceph分布式存储-操作记录

    之前已详细介绍了Ceph分布式存储基础知识,下面简单记录下Centos7使用Ceph-deploy快速部署Ceph环境: 1)基本环境 192.168.10.220 ceph-admin(ceph-d ...

  8. C# 读取xml——XmlReader和XElement

    1.有些xml文件头部有DTD,程序解析的时候会报错 如:其他信息: 打开外部 DTD“file:///E:/PM数据/MeContext=CDF2775/MeasDataCollection.dtd ...

  9. Node.js 搭建 https 协议 服务器

    var https = require('https'); //创建服务器 https var fs = require('fs'); //文件系统的模块 const hostname = '127. ...

  10. nodejs笔记之流(stream)

    nodejs的stream有四种流类型: 可读:Readable可写:Writable可读可写:Duplex操作被写入数据,然后读出结果:Transform常用事件:data:有数据可读时触发end: ...