MySQL分库分表,一般只能按照一个维度进行查询.

以订单表为例, 按照用户ID mod 64 分成 64个数据库.

按照用户的维度查询很快,因为最终的查询落在一台服务器上.

但是如果按照商户的维度查询,则代价非常高.

需要查询全部64台服务器.

在分页的情况下,更加恶化.

比如某个商户查询第10页的数据(按照订单的创建时间).需要在每台数据库服务器上查询前100条数据,程序收到 64*100 条数据,然后按照订单的创建时间排序,截取排名90-100号的10条记录返回,然后抛弃其余的6390条记录.如果查询的是第100页,第1000页,则对数据库IO,网络,中间件CPU,都是不小的压力.

分库分表之后,为了应对多维度查询,很多情况下会引入冗余.

比如两个集群,一个按照用户ID分库分表,另外一个按照商户ID分库分表.

这样多维度查询的时候,各查各的.

但是有几个问题,一样不好解决.

比如,

每扩展一个维度,就需要引入一个集群.

集群间的数据,如何保证一致性.

冗余占用大量磁盘空间.

从朋友那里看到的订单表结构.做冗余会占用大量的磁盘空间.

create tableTS_ORDER

(

ORDER_IDNUMBER(8) not null,

SNVARCHAR2(50),

MEMBER_IDNUMBER(8),

STATUSNUMBER(2),

PAY_STATUSNUMBER(2),

SHIP_STATUSNUMBER(2),

SHIPPING_IDNUMBER(8),

SHIPPING_TYPEVARCHAR2(255),

SHIPPING_AREAVARCHAR2(255),

PAYMENT_IDNUMBER(8),

PAYMENT_NAMEVARCHAR2

MySQL分库分表后聚合查询_MySQL订单分库分表多维度查询相关推荐

  1. mysql 分表后如何扩展_MySQL横向扩展-分库分表解决方案总结

    从业务场景看分库分表 互联网行业中,业务场景通常写少读多的情况居多,在MySQL的使用前期,读性能大多可以通过SQL优化来解决,但随着业务的持续发展,单纯依靠SQL的查询优化会越来越难以达到业务服务要 ...

  2. mysql 分表后如何扩展_mysql扩展至分库分表

    MySQL互联网Oracle企业应用数据结构 . 数据库的复制能解决访问问题,并不能解决大规模的并发写入问题,要解决这个问题就要考虑mysql数据切分了 数据切分,顾名思义,就是数据分散,将一台主机上 ...

  3. mysql同张表关联多次查询_MySQL多次单表查询和多表联合查询

    Tip:不建议执行三张表以上的多表联合查询 对数据量不大的应用来说,多表联合查询开发高效,但是多表联合查询在表数据量大,并且没有索引的时候,如果进行笛卡儿积,那数据量会非常大,sql执行效率会非常低 ...

  4. mysql将多个成绩放在一排_mysql巧用连表查询各科成绩前三名

    下列是各表的详情,不想自己建表的同学可以直接copy code,数据随意. 创建表成绩详情表: CREATE TABLE score ( id int(10) NOT NULL AUTO_INCREM ...

  5. mysql 连表查询_mysql数据库之联表查询

    表准备: 这次我们用到5张表: class表: student表: score表: course表: teacher表: 表结构模型: 我们针对以下需求分析联表查询: 1.查询所有的课程的名称以及对应 ...

  6. mysql 多个select查询_MySQL的select多表查询

    select 语句: select 语句一般用法为: select 字段名 from tb_name where 条件 ; select 查询语句类型一般分为三种: 单表查询,多表查询,子查询 最简单 ...

  7. Django删除数据表后,再重新生成新数据表

    删除数据表后,数据库的Django migrations数据未删除,如果直接命令行调用如下命令,是不会再生成数据表的 Python manager.py makemigrations Python m ...

  8. mysql 按月分表的查询_mysql按月分表, 组合查询

    每个月月底最后一天建好下个月的空表 或每年底建1到12月的空表 , table_201901,table_201902,table_201903 增加记录不需要修改,insert到当月对应表就好了. ...

  9. mysql 左关联查询_MySQL 左关联右表条件查询

    MySQL的新知识: 之前数据库没学好,不知道LEFT JOIN ON后边可以加条件 首先业务是有个A表,然后会依据A表信息来在B表生成一条对应数据, 操作时候展示A表数据,如果B表已经有对应数据,显 ...

  10. 如何避免mysql回表查询_mysql如何避免回表查询

    <迅猛定位低效SQL?>留了一个尾巴: select id,name where name='shenjian' select id,name,sexwhere name='shenjia ...

最新文章

  1. 软件质量保证计划_软件测试计划 笔记
  2. 派森编程软件python-派森Python
  3. oracle中创建函数行变列,oracle decode 函数实现行转列
  4. DS博客作业01--日期抽象数据类型设计与实现
  5. 2022年Python数据分析的宝藏地带
  6. 十分钟看懂什么是VoLTE【包学包会,否则退款】
  7. spi flash驱动
  8. 解决:Unable to open debugger port (127.0.0.1:55017): java.net.SocketException “Socket closed“
  9. 【解决】如何打开.ipynb文件
  10. 哪个计算机无法做到双屏显示,怎么启用双屏显示设置【图文介绍】
  11. [国嵌攻略][084][信号同步编程]
  12. 金典 SQL笔记(2)
  13. 如何用VC 2005打开VC 2008的工程
  14. eNSP教程 —— 将虚拟机连接到eNSP设备之中
  15. ip地址服务器怎么修改,怎么修改电脑的IP地址和DNS服务器
  16. 笔记:WPS关于设置页眉页脚的问题
  17. 禁止微信中长按出现 复制文本和在浏览器中打开
  18. 项目成败的关键要素:有效沟通
  19. ORB-SLAM3安装遇到的问题及解决
  20. 【雷达仿真 | FMCW TDMA-MIMO毫米波雷达信号处理仿真(可修改为DDMA-MIMO)】

热门文章

  1. 信息技术与计算机课程标准,再谈新课程标准下的信息技术教学
  2. CentOS 6.4x64编译安装DRBD及备节点同步后容量变小的处理
  3. 旗舰手机的拍照芯片(上)
  4. PS快速美白磨皮方法
  5. mac photoshop cs5.1 序列号
  6. C专家编程 第9章 再论数组 9.6 C语言的多维数组
  7. cygwin安装apt-cyg命令
  8. 三天晚上看了24集 央视版《神雕侠侣》 还不错
  9. 浅谈什么是 云原生
  10. 10个热门大数据发展趋势