MySQL生产环境部署架构

2023-11-04

MySQL生产环境部署架构

常用的分库分表架构

按业务id分库分表,建立索引映射表同时进行分库分表,数据同步到ES做复杂搜索。

分库分表下如何分页

假设用户现在要查询自己的订单,同时订单要求要支持分页,该怎么做?

方案一:因为同一个用户的订单可能是分布在不同的库不同表的,需要建立一个索引表,

(user_id, order_id),这个表对user_id进行分库分表后,同一个用户的数据就会进入到同一张表里,

既然在同一张表里就可以利用mysql自带的分页机制。

方案二:加载到内存之中,在内存中分页。

对于主从同步保证高可用可选的模式

建议选用半同步方式,半同步方式也有两种情况,MySQL5.7之后默认是:当从库同步binlog成功后,才提交事务,返回成功给客户端。

对于主从同步延时如何提升

MySQL5.7之后已经支持多线程同步了,可以开启,提升速度。slave_parallel_workers>0,slave_parallel_type设置为LOGIGAL_CLOCK,可以使用percona-toolkit工具集里的pt-hearbeat工具,它会在主库里创建一个hearbeat表,然后有一个线程定时更新这个表里的时间戳字段,从库上就有一个monitor线程负责检查从库同步过来的heartbeat表里的时间戳。

基于主从复制实现故障转移

使用MHA进行故障转移,具体步骤网上例子很多

分库分表运行几年后,进行再次扩容应该怎么做

应该在设计之初就对增加表的情况say no,使得单表在20年后才有百万级的数据量。但是如果服务器存储空间耗尽,就要增加数据库服务器了,将旧表分散到不同服务器上,更改路由规则。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL生产环境部署架构 的相关文章

  • 在mysql中使用smallint数据类型而不是int真的可以节省内存吗?

    在 mysql 表中使用 Smallint 数据类型而不是常规 int 是否真的可以提高内存使用率 无论如何 硬件不会为所有数据分配完整的 64 位字大小吗 如果它不分配完整的字 那么我们是否会看到由于必须从内存中分配的 64 位字中解析出
  • 无法在 Windows 中安装 mysql-python(较新版本)

    I have mysql pythonv1 2 4 在我的机器 Windows 8 上安装得很好 我正在使用Python 2 7 每次尝试升级到 v1 2 5 时 我总是遇到以下错误 从 v1 3 7 开始仍然发生 C Users User
  • 从多个表插入表

    嘿 我有一个连接表 连接两个不相关的表 两个表都有ID的 我需要选择ID从每个表中使用WHERE具有不同的值 例如这就是我的看法 INSERT INTO c aID bID VALUES SELECT a ID WHERE a Name M
  • 编写 MySQL 查询以获得所需结果

    我正在使用 MySQL 数据库 风险因素有四种类型 严重 高 中 低 表包含如下数据 id uaid attribute value time risk factor 1 1234 Edge Exist 16123 NONE 2 1234
  • 无需 sudo 连接本地 MySQL 服务器

    这个命令 mysql uroot p 给出以下错误 ERROR 2002 HY000 Can t connect to local MySQL server through socket var lib mysql mysql sock 1
  • MySQL Socket 在数千个连续连接后拒绝连接

    我目前正在尝试在当前 Ubuntu 机器上填充 MySQL5 1 数据库 其中包含超过 5 000 000 个条目 由于程序的体系结构 对于每个 INSERT 语句 都会打开和关闭一个新的数据库连接 我知道这是一项昂贵的操作 但更改此操作需
  • 如何查询两个日期之间的“日期”字段是字符串?

    我在 MySQL 数据库中有一个表 其中有一个名为 日期 的字段 问题是日期的格式为 DD MM YYYY 因此我无法将其作为 DATE 类型字段上传到 MySQL 相反 字段类型是字符串 考虑到这一点 我如何编写能够产生这种效果的查询 S
  • XAMPP、PROFTPD问题

    我已经在 macOS Mojave 上安装了 XAMPP 当我运行此命令 sudo Applications XAMPP xamppfiles xampp start 时 我收到以下错误 启动 Mac OS X 7 2 10 0 的 XAM
  • 检查 Laravel 模型是否已保存或查询是否已执行

    我见过很多人使用这种方式来检查 Laravel 模型是否已保存 所以现在我想知道这是否是一种安全的方法 我还可以检查下面的查询是否像这样执行 检查模型是否已保存 Eg myModel new User myModel gt firstnam
  • 如何将逗号分隔值传递给 MySql 中的存储过程?

    我有像这样的存储过程 CREATE DEFINER test PROCEDURE test get details in p istudid int in p icourseid int in p branchid varchar 20 B
  • Mysql Workbench 错误“系统错误:61”

    我几个月前安装了mysql 不过 我确实记得曾经成功地使用过 mysql workbench 今天我尝试启动它并收到以下错误 在 读取初始通信数据包 时失去与 MySQL 服务器的连接 系统错误 61 在文本编辑器中打开 etc mysql
  • 使用 C++ 连接器的 C++ mysql 连接 bad_alloc

    尝试建立一个简单的 mysql 连接 但得到一个bad alloc即使查看类似的帖子 我也不知道如何解决这个问题 这是我的代码 include
  • ubuntu上rails mysql gem问题

    Ruby on Rails 我想调用本地主机上的控制器 但服务器说 缺少 mysql gem 将其添加到您的 Gemfile 中 gem mysql 2 8 1 问题 当我点击 gem list 命令时 我得到了一个包含 mysql 2 8
  • MySQL:删除包含特定参数且早于一天的行[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在使用 mysql 为我的网站创建一个登录系统 它在基于订阅的系统上运行 如果参数 premium 等于 1 DAY 如果它早于一
  • 恢复 woocommerce 订单

    最近 我的服务器团队更换了我的数据库 他们将我们以前的数据库放入其中 因此 我们丢失了某一天 特定日期 的订单详细信息 现在 服务器团队提供包含丢失当天订单详细信息的备份 现在请告诉我如何恢复这些订单 我无法用给定的备份替换我们的数据库 因
  • 有人知道一个像样的免费数据库模式逆向工程工具吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 寻找一种工具 可以自动从实时数据库创建 MySQL 数据库模式的图形表示 显示表 列和关系 ER 图 理想情况下 在 OS X 上运行的东
  • Codeigniter Cart - 将数据保存在数据库中 - 如何处理?

    我需要帮助在我的网络应用程序中处理订单和购物车 我决定使用 Codeigniter 2 中内置的 Cart 库 我看过一些关于 Cart 库的教程 我知道如何使用它 但我不知道 我什么时候应该在数据库中创建 保存该订单 当用户将商品添加到购
  • 主键与主键

    创建包含数据库结构的 mysql 转储时 其中一张表显示以下内容 CREATE TABLE completedTransactions paymentId int 10 unsigned NOT NULL timestamp int 15
  • 在 MySQL 数据库中存储大文件的更好方法?

    我有一个 PHP 脚本 您可以使用它上传非常大的文件 最大 500MB 并且该文件的内容存储在 MySQL 数据库中 目前我做这样的事情 mysql query INSERT INTO table VALUES uploadedfile f
  • 错误 1366 (HY000):整数值不正确:第 1 行的列“id”的“”[已关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 My code sql INSERT INTO static table name sql join array key

随机推荐

  • 为什么我们需要 HTTP/3?QUIC协议成功“上位”。

    TCP 是 Internet 上使用和部署最广泛的协议之一 多年来一直被视为网络基石 随着HTTP 3正式被标准化 QUIC协议成功 上位 UDP 取代 TCP成为基础协议 TCP究竟 输 在哪里 TCP与HTTP的不解之缘 HTTP 超文
  • 获取光标,并且移动至最后

    准备一个元素 div div 调用获取光标方法 传入元素 this keepLastIndex document getElementById sendMessageInput keepLastIndex obj if window get
  • nodeJS ---包管理工具

    包管理工具 一 概念介绍 1 1 包是什么 包 英文单词是 package 代表了一组特定功能的源码集合 1 2 包管理工具 管理 包 的应用软件 可以对 包 进行 下载安装 更新 删除 上传 等操作 借助包管理工具 可以快速开发项目 提升
  • 【React】 18课 简单理解redux

    本章主要讲redux的js文件内的代码原理以及使用方法 简单理解redux是干什么的 其实redux与vuex类似 是用于redux内各组件间通讯的数据存储仓库 首先我们来看以下文件目录结构 在此之前我们需要给React项目安装redux插
  • tensorflow中optimizer minimize自动训练简介和选择训练variable的方法

    本文主要介绍tensorflow的自动训练的相关细节 并把自动训练和基础公式结合起来 如有不足 还请指教 写这个的初衷 有些教程说的比较模糊 没体现出用意和特性或应用场景 面向对象 稍微了解点代码 又因为有限的教程讲解比较模糊而一知半解的初
  • hibernate学习总结

    创建java工程 导入hibernate jar包 配置hibernate cfg xml配置文件 创建数据库以及表 创建实体类 符合javabean规范的 创建实体类对应的xxxx hbm xml文件 完成映射的配置 创建test方法 测
  • [深度学习笔记(3)]模型保存与加载

    本系列是博主刚开始接触深度学习时写的一些笔记 写的很早了一直没有上传 趁着假期上传一下 作为分享 希望能帮助到你 目录 一 模型保存 二 模型加载 1 加载模型 2 加载模型参数 总结 一 模型保存 保存模型 模型参数 torch save
  • DevOps :Jenkins pipeline + sonarQube 完成静态检测 + junit 覆盖率报告。

    项目基础 1 maven3 3 9 java 1 8 2 jenkins 2 138 2 3 sonarQube6 7 5 汉化 前言 jenkins maven java1 8 环境安装过程不在描述 我们采用jenkins pipelin
  • F - Certifications (lower_bound)

    F Certificationshttps vjudge csgrandeur cn problem Gym 101343F Dr Samer与GX公司达成协议 为创新编程实验室的每堂课设计证书 GX公司给了Samer博士n个offer 其
  • 土壤湿度芯片YL-69测试

    功能 清翔51开发板 pcf8591的三通道CH3采集来自YL 69的AO 用液晶显示出来 效果图 实现过程 1 HexStrToStr和strtohexstr两个函数 https bbs csdn net wap topics 39201
  • ESP32-S2学习记录2-使用sd卡保存日志

    前言 本文旨在记录ESP32 S2的学习研究记录 实现ESP32 S2搭载NB IoT BC26模块进行低功耗网络通信 1 sd card init include
  • Hive的hiveserver2和beeline的使用以及spark thritfserver的启动

    Hive的hiveserver2和beeline的使用以及spark thritfserver的启动 Hive 的hiveserver2介绍 hiveserver2 的配置 beeline连接hiveserver2 配置hiveserver
  • element-ui更改el-table表头背景颜色、字体大小

    秃然发现一个问题 所以记录一下 每个人都知道
  • docker odoo创建模块

    docker启动的如下步骤将创建并安装一个新的插件模块 进入到工作目录即你要操作并放置新建的自定义模块的插件目录中 为新模块选择一个技术名称并使用该名称作为模块名创建目录 本例中 我们使用my library pert PertdeMacB
  • JPA-Specification常用条件查询构造方式

    JPA Specification常用条件查询构造方式 1 toPredicate方法 Predicate toPredicate Root
  • 【TS】Error: Property ‘children‘ does not exist on type ‘X‘

    最近 在做项目模块的迁移 新项目需要使用ts 遇到的问题有点多 记录一下 先来复现一下场景 import React from react type PersonProps name string age number const Pers
  • 阿里云云服务器ECS要怎么绑定域名?

    阿里云云服务器ECS要怎么绑定域名 使用阿里云云服务器ECS 可以轻松地将域名与您的服务器实例进行绑定 以便通过域名来访问您的网站或应用程序 本文将提供详细的步骤和说明 教您如何在阿里云上绑定域名到ECS实例 一 购买域名 首先 在绑定域名
  • 目标检测——Anchor-Based算法的学习笔记

    1 前言 在写这篇笔记之前 首先我们需要确定的是 Anchor Based的思路一定优于Anchor Free的算法 这是毋庸置疑的 你想想 一个事情分成两步做 正负目标分类 目标的精细定位和回归 一个事情一步做 目标分类和回归 负样本被当
  • PixelStreaming数据通信

    PixelStreaming数据通信 简介 H5到UE4通信 H5发送 UE4接收 UE4到H5通信 UE4发送 H5接收 iframe postMessage 父页面 子页面 改造UE4提供的像素流送H5 UE4项目bat启动器 问题 U
  • MySQL生产环境部署架构

    MySQL生产环境部署架构 常用的分库分表架构 按业务id分库分表 建立索引映射表同时进行分库分表 数据同步到ES做复杂搜索 分库分表下如何分页 假设用户现在要查询自己的订单 同时订单要求要支持分页 该怎么做 方案一 因为同一个用户的订单可