linux中,mysql数据库分片(分库分表)

1.mysql分库分表:解决单个mysql存储上限问题1.实现方法:存储层面:利用分布式存储解决方案分库分表:拆分库和表到其它服务器2.常用设计思路:垂直分库(库里面的表分开)+水平分表(表里面的数据分开)分库:数据库分为多个,每个数据库里面都有表,数据均匀存储分库分表:在分的每库里面,进行分表,数据均匀存储到各表3.分片规则MOD_HASHUNI_HASHRIGHT_SHIFTYYYYMMWEEK...4.架构客户端分片服务器主                主从                从5.分库分表操作分类:(1)分片表,(2)ER表:针对具有关联关系的表,对于没有声明分库分表的逻辑,也会参考复杂表的分库分表逻辑(3)全局表:所有库都有表的全部数据(副本)语法:dbpartition by 规则(字段)tbpartitino by 规则(字段)mode_hash() 取余哈系分片规则tbpartitions 表分片数量dbpartitions 库分片数量broadcast:全局表6.分库分表搭建步骤1.配置主从同步2.装mycat包,以及依赖包3.配置mycat,users的用户4.配置本机datasource数据源用户,创建用户授权5.mycat中,配置datasource数据源连接其它主机,mysql的主服务器创建plj用户//添加MySQL59主机MySQL>/*+ mycat:createdatasource{"name":"dw0","url":"jdbc:mysql://192.168.88.59:3306","user":"plj","password":"123456"}*/;//添加MySQL60主机//添加MySQL61主机//添加MySQL62主机6.mycat上搭建2个主从结构的集群c0,c1(分库分表的集群名称必须定义为c0,c1...)mysql>/*! mycat:createcluster{"name":"c0","masters":["dw0"], #主服务器名"replicas":["dr0"] #从服务器名}*/;...7.分片操作(1)mycat上建立数据库,不需要配置逻辑库.mysql -h192.168.88.63 -P8066 -umycat –p654321create database tarena;(2)mycat,建表,分片create table tarena.employees(employee_id  int  primary key,name char(10),dept_id int , mail varchar(30)) dbpartition BY mod_hash(字段) tbpartition BY mod_hash(employee_id) dbpartitions 2tbpartitions 1;(3)mycat,插入数据测试mysql -h192.168.88.63 -P8066 -umycat –p654321insert into tarena.employees values (9,"jim","1","jim@163.com");insert into tarena.employees values (8,"tom","3","tom@QQ.com");insert into tarena.employees values (7,"lucy","2","lucy@QQ.com");insert into tarena.employees values (6,"john","2","john@QQ.com");

3.mysql分库分表:解决单个mysql存储上限问题

    1.实现方法:
        存储层面:利用分布式存储解决方案
        分库分表:拆分库和表到其它服务器

    2.常用设计思路:
        垂直分库(库里面的表分开)+水平分表(表里面的数据分开)

        分库:数据库分为多个,每个数据库里面都有表,数据均匀存储
        分库分表:在分的每库里面,进行分表,数据均匀存储到各表

    3.分片规则
        MOD_HASH
        UNI_HASH
        RIGHT_SHIFT
        YYYYMM
        WEEK
        ...
        
    4.架构
             客户端
            分片服务器
        主                主
        从                从

    5.分库分表操作
        分类:(1)分片表,
            (2)ER表:针对具有关联关系的表,对于没有声明分库分表的逻辑,也会参考复杂表的分库分表逻辑
            (3)全局表:所有库都有表的全部数据(副本)
        语法:
            dbpartition by 规则(字段)
            tbpartitino by 规则(字段)
    
            mode_hash() 取余哈系分片规则
                
            tbpartitions 表分片数量
            dbpartitions 库分片数量

            broadcast:全局表

    6.分库分表搭建步骤
        1.配置主从同步
        2.装mycat包,以及依赖包
        3.配置mycat,users的用户
        4.配置本机datasource数据源用户,创建用户授权
        5.mycat中,配置datasource数据源连接其它主机,mysql的主服务器创建plj用户
            //添加MySQL59主机
            MySQL>/*+ mycat:createdatasource{
            "name":"dw0",
            "url":"jdbc:mysql://192.168.88.59:3306",
            "user":"plj",
            "password":"123456"
            }*/;
            //添加MySQL60主机
            //添加MySQL61主机
            //添加MySQL62主机
        6.mycat上搭建2个主从结构的集群c0,c1(分库分表的集群名称必须定义为c0,c1...)
            mysql>/*! mycat:createcluster{
                "name":"c0",
                "masters":["dw0"], #主服务器名
                "replicas":["dr0"] #从服务器名
            }*/;
            ...
        7.分片操作
            (1)mycat上建立数据库,不需要配置逻辑库.
                mysql -h192.168.88.63 -P8066 -umycat –p654321
                create database tarena;
    
            (2)mycat,建表,分片
                create table tarena.employees(
                    employee_id  int  primary key,
                    name char(10),
                    dept_id int , 
                    mail varchar(30)
                ) 
                dbpartition BY mod_hash(字段) 
                tbpartition BY mod_hash(employee_id) 
                dbpartitions 2
                tbpartitions 1;
    
            (3)mycat,插入数据测试
                mysql -h192.168.88.63 -P8066 -umycat –p654321
                insert into tarena.employees values (9,"jim","1","jim@163.com");
                insert into tarena.employees values (8,"tom","3","tom@QQ.com");
                insert into tarena.employees values (7,"lucy","2","lucy@QQ.com");
                insert into tarena.employees values (6,"john","2","john@QQ.com");

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/65192.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CI/CD是什么?

CI/CD 定义 CI/CD 代表持续集成和持续部署(或持续交付)。它是一套实践和工具,旨在通过自动化构建、测试和部署来改进软件开发流程,使您能够更快、更可靠地交付代码更改。 持续集成 (CI):在共享存储库中自动构建、测试…

论文阅读:Deep Fusion Clustering Network With Reliable Structure Preservation

论文地址:Deep Fusion Clustering Network With Reliable Structure Preservation | IEEE Journals & Magazine | IEEE Xplore 代码地址:https://github.com/gongleii/DFCN-RSP 摘要 深度聚类通过优雅地利用数据表示来寻找样本的划分,已…

InnoDB存储引擎【MySQL从放弃到入门】

文章目录 InnoDB存储引擎【MySQL从放弃到入门】1.逻辑架构1.1 一条SQL语句是怎么执行的呢?1.2 MySQL存储引擎有哪些? 2.MySQL一行记录是怎么存储的?2.1 NULL值是如何存储的? 3.char和varchar的区别?4.数据页4.1 聚簇索…

Jenkins集成部署(图文教程、超级详细)

一、CI/CD 的概念 ​ CI/CD一般包含三个概念: 持续集成(Continuous Integration ,CI) 持续交付(Continuous Delivery) 持续部署(Continuous Deploy) ​ CI/CD 是现代软件开发的重要…

UE5喷涂功能

许多FPS/TPS 游戏都有喷涂、涂鸦功能 其实原理很简单,就是利用了延迟贴花实现的 我们从网上随便找一张图 创建一个材质,材质域选择延迟贴花 混合模式选择半透明,自发光强度可以看感觉调整 材质做好之后编译保存,新建一个Actor…

ECCV-2024 | 指令不够用、大模型来生成!BEVInstructor:基于BEV感知和大模型的视觉语言导航指令生成

作者:Sheng Fan, Rui Liu, Wenguan Wang, and Yi Yang 单位:浙江大学 原文链接:Navigation Instruction Generation with BEV Perception and Large Language Models (https://link.springer.com/chapter/10.1007/978-3-031-726…

电脑出现 0x0000007f 蓝屏问题怎么办,参考以下方法尝试解决

电脑蓝屏是让许多用户头疼的问题,其中出现 “0x0000007f” 错误代码更是较为常见且棘手。了解其背后成因并掌握修复方法,能帮我们快速恢复电脑正常运行。 一、可能的硬件原因 内存问题 内存条长时间使用可能出现物理损坏,如金手指氧化、芯片…

Ubuntu下ESP32-IDF开发环境搭建

Ubuntu下ESP32-IDF开发环境搭建 文章目录 Ubuntu下ESP32-IDF开发环境搭建一、前言二、软件安装三、开发环境搭建3.1 ESP-IDF安装:3.2 安装编译工具: 四、编译并烧录代码五、ESP32代码编辑工具 一、前言 ​ 开发ESP32,我们首先就要安装开发环…

Linux复习4——shell与文本处理

认识vim编辑器 #基本语法格式: vim 文件名 •如果文件存在,进入编辑状态对其进行编辑 •如果文件不存在,创建文件并进入编辑状态 例: [rootlocalhosttest]# vim practice.txt #Vim 编辑器三种模式: 命令模式&a…

5个实用的设计相关的AI网站

在这个日新月异的数字时代,我们不断面临着新的挑战和机遇。随着人工智能(AI)技术的飞速发展,越来越多的AI工具开始融入到设计相关的工作流程中,极大地提升了工作效率和创作能力。今天,我非常兴奋地向大家介…

云手机群控能用来做什么?

随着云手机的发展,云手机群控技术逐渐从小众的游戏多开工具,发展为涵盖多个领域的智能操作平台。不论是手游搬砖、短视频运营,还是账号养成等场景,云手机群控都展现出了强大的应用潜力。本文将为大家详细解析云手机群控的应用场景…

数据结构(哈希表(中)纯概念版)

前言 哈希表(Hash Table)是计算机科学中的一个基础而重要的数据结构,它广泛评估各种算法和系统中,尤其是在需要快速查找、插入和删除操作的场景中。由于其O( 1)的平均时间复杂度,存储表在性能要求较高的应用中表现得非…

Python使用requests_html库爬取掌阅书籍(附完整源码及使用说明)

教程概述 本教程先是幽络源初步教学分析掌阅书籍的网络结构,最后提供完整的爬取源码与使用说明,并展示结果,切记勿将本教程内容肆意非法使用。 原文链接:Python使用requests_html库爬取掌阅书籍(附完整源码及使用说明…

水库大坝三维模型开发bim篇

效果图 开发过程 使用了bimface 插件上传做好rvt模型到bimface工程引入bimface相关的插件代码加载模型自定义目录树定位构件闪烁构件展示构件信息 代码 技术交流加V:bloxed appKey 和appSecret 换成自己的就行 <template><div class"box-bim w100" ref&…

CSharp: Oracle Stored Procedure query table

存储过程查询postgreSQL,Oracle 和sql server,Mysql 有区别。程序调用也是有区别。 oracle sql script: CREATE OR REPLACE PROCEDURE procSelectSchool(paramSchoolId IN char,p_cursor OUT SYS_REFCURSOR ) AS BEGINOPEN p_cursor FORSELECT *FROM SchoolWHERE SchoolId p…

C语言基础——指针(4)

一&#xff0e; 字符指针变量 字符指针变量的使用和整型指针变量的使用方法相似&#xff0c;以下是其基本使用方法的例子&#xff1a; &#xff08;1&#xff09;字符指针变量还有一种使用方法&#xff1a; const char* p "abcd" 需…

Net9解决Spire.Pdf替换文字后,文件格式乱掉解决方法

官方文档 https://www.e-iceblue.com/Tutorials/Spire.PDF/Program-Guide/Text/Find-and-replace-text-on-PDF-document-in-C.html C# 在 PDF 中查找替换文本 原文件如下图&#xff0c;替换第一行的新编码&#xff0c;把41230441044替换为41230441000 替换代码如下&#xff…

【C语言程序设计——选择结构程序设计】预测你的身高(头歌实践教学平台习题)【合集】

目录&#x1f60b; 任务描述 相关知识 1、输入数值 2、选择结构语句 3、计算结果并输出 编程要求 测试说明 通关代码 测试结果 任务描述 本关任务&#xff1a;编写一个程序&#xff0c;该程序需输入个人数据&#xff0c;进而预测其成年后的身高。 相关知识 为了完成本…

【自动化测试】windows下安装Selenium浏览器界面测试工具

Date: 2024.12.23 10:15:53 author: lijianzhan 简述&#xff1a;这篇教程详细介绍了如何在Windows环境下安装selenium&#xff0c;并设置Chrome浏览器驱动。什么是Selenium&#xff1f;Selenium是一个基于浏览器的自动化测试工具&#xff0c;它提供了一种跨平台、跨浏览器的端…

前端网络之【浏览器跨域问题分析与解决方案】

文章目录 同源策略同源与异源跨域的限制场景解决方案 CORS 请求分类 简单请求预检请求 注意点一 【关于Cookie】注意点二 【关于跨域获取响应头】 JSONP 基本流程 代理服务器 如何选择对应方案 同源策略 **同源策略是一套浏览器的安全策略机制&#xff0c;当一个源的文档和脚…