广告
返回顶部
首页 > 资讯 > 数据库 >MySQL优化(6):分表和读写分离
  • 118
分享到

MySQL优化(6):分表和读写分离

MySQL优化(6):分表和读写分离 2019-09-15 09:09:17 118人浏览 绘本
摘要

分表 通常指:通过应用程序层,将数据划分到不同的表中进行存储 对比分区,分区是在服务器层完成的分区算法 分表会导致客户端明显的改变,在服务器端出现结构相同的多张表,甚至可以把多张表分到不同的服务器上   以账单表为例:数据库可能会

MySQL优化(6):分表和读写分离

分表

通常指:通过应用程序层,将数据划分到不同的表中进行存储

对比分区,分区是在服务器层完成的分区算法

分表会导致客户端明显的改变,在服务器端出现结构相同的多张表,甚至可以把多张表分到不同的服务器上

 

以账单表为例:数据库可能会有这样的情况

create table bill201710(
id int unsigned auto_increment primary key,
user_ud int unsigned,
amount decimal(10,2),
date int
);
create table bill201711(
id int unsigned auto_increment primary key,
user_ud int unsigned,
amount decimal(10,2),
date int
);
create table bill201712(
id int unsigned auto_increment primary key,
user_ud int unsigned,
amount decimal(10,2),
date int
);

 

而是又Java等代码进行处理,区分应该选择哪一张表,根据传递的时间参数进行划分

实际中,有一个比较麻烦的问题,主键ID的问题,理论上ID是不可以重复的

解决方案:

(1)代码层面,手动做一个自增ID,不稳妥

(2)利用数据库,新建一张独立地表,一张生成ID地表

create table billid(
id int unsigned auto_increment primary key
)

在插入真正的账单之前,先去ID表取一个ID,这种方式也是常用的方式

 

分表的原因:

(1)为数据库减压

(2)数据库分区算法的局限性,也是最重要的原因

(3)数据的支持不完善,老版本Mysql不支持分区

 

分区和分表都称之为水平分割,于是有了垂直分割:

 

垂直分割:

每个表记录数量一直,但是字段不一致

这种方式其实不是太推荐的

无论垂直还是水平分割,本质都是把大的单位划分为小的单位

 

横向扩展mysql服务器:

由多台Mysql服务器提供数据存储服务器

横向扩展是从根本上提升数据库性能的手段,受限于单台计算机的性能,使用多台计算机完成同一个服务的支持

比较典型的概念是:读写分离,负载均衡

 

读写分离:

由一部分MySQL服务器提供读操作:SELECT

另一些MySQL服务器提供写操作:UPDATE,DELETE,INSERT

 

以前有写过在Java的SSM中如何配置读写分离:

https://www.cnblogs.com/xuyiqing/p/10648103.html

 

以及在windows中配置MySQL的主从同步:

Https://www.cnblogs.com/xuyiqing/p/10647133.html

 

负载均衡:

当存在多台服务器提供一个任务时,需要从其中选择某台完成当前任务,就是选择负载均衡

负载均衡技术有很多,不如Nginx,Zuul等等,不过和MySQL不在一个层次

在mysql架构中,往往采用的是一写多读的架构,这里的多台读服务器就需要做负载均衡

典型的负载均衡算法有:平均轮询,加权轮询,负载分配

负载均衡的实现可以用中间件,也可以在Java代码中实现

比如SpringBoot配置多个数据源,SpringCloud多谢几个DAO层的服务,并且每个服务调用不同的数据源即可解决

 

您可能感兴趣的文档:

--结束END--

本文标题: MySQL优化(6):分表和读写分离

本文链接: https://www.lsjlt.com/news/4891.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL优化(6):分表和读写分离
    分表 通常指:通过应用程序层,将数据划分到不同的表中进行存储 对比分区,分区是在服务器层完成的分区算法 分表会导致客户端明显的改变,在服务器端出现结构相同的多张表,甚至可以把多张表分到不同的服务器上   以账单表为例:数据库可能会...
    99+
    2019-09-15
    MySQL优化(6):分表和读写分离
  • 6\MySQL 主从同步 、 MySQL 读写分离 、 MySQL 性能调优
    day06一、mysql主从同步 二、数据读写分离三、MySQL优化++++++++++++++++++++++++++++++++一、mysql主从同步 1.1 主从同步介绍?从库服务器自动同步主库上数...
    99+
    2022-10-18
  • MySQL-mycat读写分离
    Mycat 需要安装JDK 1.7 或者以上版本第一步:下载jdk-8u131-linux-x64.tar.gz文件 http://haixi.sfkcn.com:8080/201704/tools/jdk-linux-x64.tar.gz...
    99+
    2021-04-03
    MySQL-mycat读写分离 数据库入门 数据库基础教程 数据库 mysql
  • mysql+amoeba读写分离
    mysql+amoeba读写分离一 简介:Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy。它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数...
    99+
    2022-10-18
  • MySQL读写分离amoeba&mysql-proxy
    ----主从同步介绍 refencen    https://www.cnblogs.com/lin3615/p/5684891.html 1. 读写分离方式 ...
    99+
    2022-10-18
  • MySQL 读写分离 (基于Amoeba)
    一.MySQL读写分离    主数据库处理事务性查询,从数据库处理select查询。数据库复制用来把事务性查询导致的变更同步到从数据库中。二.最为常见的读写分离有两种:1.基于...
    99+
    2022-10-18
  • MySQL读写分离架构(KHPM)
    MySQL读写分离架构(KHPM) Keepalived HAProxy ProxySQL MySQL Keepalived+HAProxy 应用程序入口无单点故障ProxySQL Cluster ...
    99+
    2022-10-18
  • mysql+mycat实现读写分离
    centos7 master slave mycat1.6 client 192.168.41.10 192.168.41.11 192.168.41.12 192.168.41.13 ...
    99+
    2022-10-18
  • mycat做Mysql的读写分离
    在MySQL中间件出现之前,对于MySQL主从集群,如果要实现其读写分离,一般是在程序端实现,这样就带来一个问题,即数据库和程序的耦合度太高,如果我数据库的地址发生改变了,那么我程序端也要进行相应的修改,如...
    99+
    2022-10-18
  • 企业 - mysql 读写分离(proxy)
                     &...
    99+
    2022-10-18
  • Mysql数据库读写分离
    (先对数据库操作进行读写分离,使得具有master角色的主服务器主要用于执行写操作,这样就能大大减少主服务器由于读操作而产生的负载过大的问题。读交给slave。对于多台读服务器,还要把读操作的压力分摊到不同...
    99+
    2022-10-18
  • MySQL/MariaDB读写分离配置
    实现数据库读写分离技术是有很多方法的,在这里我就用一个比较简单的mysql-proxy这个中间件来实现数据库的读写分离; 使用mysql-proxy实现mysql的读写分离,mysql-proxy实际上是作为后端mysql主从服务器的代理...
    99+
    2021-01-12
    MySQL/MariaDB读写分离配置
  • mysql主从及读写分离
     主从同步1 主配置把237配置为主数据库服务器  授权用户从42数据库服务器连接自己的时候有拷贝数据的权限grant   replication &nbs...
    99+
    2022-10-18
  • MySQL Router实现MySQL的读写分离
    MySQL Router实现MySQL的读写分离 https://www.cnblogs.com/f-ck-need-u/p/9276639.html https://www.cnblogs.com...
    99+
    2022-10-18
  • amoeba:关于mysql的读写分离
    今天用amoeba做了次读写分离,下面总结下步骤:三台linux:1、192.168.1.213    用于做amoeba服务器2、192.168.1.184&nbs...
    99+
    2022-10-18
  • mysql系列之8------读写分离
    一、前言:读写分离的基本原理       mysql的读写分离的基本原理是:让master(主数据库)来响应事务性操作,让slave(从数据库)来响应select非事...
    99+
    2022-10-18
  • MyCAT实现MySQL的读写分离
    在MySQL中间件出现之前,对于MySQL主从集群,如果要实现其读写分离,一般是在程序端实现,这样就带来一个问题,即数据库和程序的耦合度太高,如果我数据库的地址发生改变了,那么我程序端也要进行相应的修改,如...
    99+
    2022-10-18
  • 怎么实现mysql读写分离
    这篇文章主要介绍“怎么实现mysql读写分离”,在日常操作中,相信很多人在怎么实现mysql读写分离问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么实现mysql读写分离”...
    99+
    2022-10-19
  • MySQL数据库之读写分离
    一、概述:    MySQL数据库主从结构配置以后,正常情况下数据库的所有读写操作全部都在主数据库上面,从数据库仅仅作为数据备份使用,显然无法有效的使用服务器资源,那...
    99+
    2022-10-18
  • MySQL-数据库读写分离(中)
    ♥️作者:小刘在C站 ♥️个人主页: 小刘主页  ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技术 ♥️小刘私信可以随便问,只要会...
    99+
    2023-08-31
    数据库 mysql sql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作