Mysql数据库架构

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: Mysql数据库架构

1、服务器硬件优化

   

   内存(不一定越多越好,避免浪费)

  1. 索引和数据可以存在缓存
  2. 缓存区大小
  3. 给其他服务提供更多内存

   磁盘

           传统机器磁盘

  1. 存储容量
  1. RAID技术可以将小磁盘变成大磁盘,增加传统机器硬盘的性能。(常用)(选择最好带缓存功能的)
  1. RAID 0 是最简单,最少使用2块以上硬盘即可 成本低 没有提供冗余和错误修复能力。后续费用可能更高。(可通过软件)
  2. RAID 1 又称磁盘镜像,保证可以修复,利用的磁盘可能就是一半的空间(可通过软件,用作读取日志等使用读块,写慢需要镜像)
  3. RAID 5 分布式奇偶校验磁盘阵列(读取很快,写的时候比较慢,使用在 从服务器上)。
  4. RAID 10 分片的镜像(推荐)
  1. image.png
  2. 固态磁盘 :  适用于存在大量随机I/O的场景      解决单线程负载的I/O瓶颈      最好使用在从服务器上    适合MYSQL
  1. 有更好随机读写性能
  2. 更好的支持并发
  3. 更容易损坏
  4. SSD
  1. 使用SATA
  2. 使用过SATA支持RAID技术 。选择支持SSD RAID配置
  1. PCI-E SSD  闪存Fusion IO
  1. 无法使用SATA接口
  2. 价改比SSD高性能更好 会使用CPU内存空间(代价)
  3. 可以不使用RAID了 ,从成本考虑
  1. 网络存储 SAN和NAS : 适用于文件存储   数据库备份文件  

                                       

       



  1. 传输速度
  2. 访问时间
  3. 主轴转速
  4. 物理尺寸

 


总结 : 64位 对应 64位

           对于并发比较高 cpu的数量比频率重要

           对于复杂sql      频率重要        

           内存尽可能大

           I/O子系统








2、操作系统 Centos系统参数优化

  内核相关参数  /etc/sysctl.conf

           TCP 链接

               net.core.somaxconn = 65535

              net.core.netdev_max_backlog = 65535

               net.ipv4.tcp_max_syn_backlog = 65535

           

           加快tcp回收

              image.png

           TCP缓存区 发送和接受

               image.png

           失效链接加速tcp回收

               image.png


       image.pngimage.png

image.pngimage.png


image.png   image.pngimage.pngimage.png


image.png

 



image.png  




   


3、MyISAM  5.5版本以前默认

  1. 表级锁
  2. 读写混合并发不是特别好  。 适合读表
  3. 表修复 可能数据会丢失
  1. 通过 check table ***
  2. 通过 repair table ***
  1. 支持压缩 这张表只读
  1. 通过命令 myisampack -b -f ***.MYI
  2. 通过压缩之后进行读写有什么问题
  1. 只读
  1. mysql 5.0 默认单表大小为4G 扩大需要修改MAX_Rows 和 AVG_ROW_LENGTH
  2. mysql 5.0之后为256TB
  3. 适用场景
  1. 非事务
  2. 只读类(报表)
  3. 空间类应用 例如GPS



4、MySQL5.5 之后默认为Innodb

  1. MySQL 5.6中,这个属性默认值是ON 默认使用独立表空间
  2. (innodb_file_per_table = OFF) 或者为每张表的数据单独放在一个.ibd文件(innodb_file_per_table = ON)。每张表一个文件允许你在drop、truncate或者rebuild表时回收磁盘空间。这对于一些高级特性也是有必要的,比如数据压缩。但是它不会带来任何性能收益。你不想让每张表一个文件的主要场景是:有非常多的表(比如10k+)。
  3. 使用独立表空间推荐
  4. image.png
  5. 支持事务ACID
  6. 支持行级锁
  1. 由存储引擎层实现
  1. 共享锁(也称读锁)
  2. 独占锁(也称写锁)

5、CSV存储引擎

  1. image.png
  2. image.png可以直接对数据文件直接编辑
  3. image.pngimage.png


   




6、Archive存储引擎

  1. image.png
  2. image.png
  3. image.png








7、Memory 存储引擎

   

  1.    image.png结构保存在磁盘 数据保存在内存
  2. image.pngimage.pngimage.png
  3. image.png默认值只有16M 对已经存在memory表修改之后无效 ,除非重建
  4. image.png
  5. image.png



8、Federated存储引擎一个数据库可以读取另一个数据库

  1.    image.png
  2. image.png
  3. image.png






9、Mysql服务器配置

  1. image.png
  2. image.png
  3. image.png
  4. image.png
  5. image.png
  6. Innodb_flush_method = O_DIrect 适用linux
  7. image.png
  8. image.png



10、安全

  1. image.png
  2. image.png 后面两个针对主从结构
  3. image.png不要轻易改动

11、基准测试 mysqllap 和 sysbeanch

   


12、image.png



13、mysql 二进制日志

  1. 基于段 statement
  2. 基于行 row(官方推荐)
  1. 优点
  1. 主从复制更加安全
  2. 对每行数据修改比基于段复制更搞笑
  1. 缺点
  1. 日志较大 binglog_row_image = [full(默认) | minimal | noblob]
  1. 运行 mysql -vv **.
  1. 混合 MIXED 上述混合



14、复制

image.png

image.pngimage.png



image.pngimage.png



15、复制工作方式及要求

   image.png

  1.  主服务器查看是否开启二进制日志
  2.  从服务器上



16、配置Mysql复制--基于日志点的复制

  1.    基于日志点的复制
  1. 配置账号
  1. image.png
  1. 配置主服务器
  1. image.png
  1. 配置从服务器
  1. image.png log_slave_update = on 可用于从服务器作为另一个服务器的主服务器
  1. 初始化从服务器数据
  1. image.png
  1. 启动复制链路
  1. 在从服务器上启动

                       image.png

                           start slave

image.pngimage.png

           



17、配置Mysql复制--基于 GTID 复制优缺点

           image.png

  1.      在主DB服务器上建立复制账号image.png
  2. 配置主服务器

       image.pngimage.pngimage.png

       3.配置从数据库服务器        


       image.pngimage.png

       4. 初始化 从数据库数据

           image.pngimage.png


image.png



           

18、选择复制模式

   5.6之后才有GTID辅助

       image.png





19、MySQL复制拓扑

  1. 一主多从
  1. 优点
  1. 配置简单
  2. 可以从多个从库分担读负载
  1. 用途
  1. 为不同业务使用不同从库(分担查询,使用不同索引,使后台查询不影响前端查询)
  2. 将一台从库放到远程IDC作为灾备
  3. 分担读负载
  1. 双主复制  主-主复制
  1. image.png
  2. 容易产生冲突 导致链路中断 耗时长
  3. 适用于 一个地区保存另一个地区数据
  4. 建议操作
  1. 两个主中操作的表最好分开 : 上海的库只使用上海的表 北京的库只使用北京库
  2. 使用下面参数控制自增
  1. image.png
  2. image.png
  1. 推荐使用主备模式下 主主
  2. image.png
  1. image.png
  1. 主有问题时候,从也需要关闭
  2. 从多的时候会对主性能有压力(解决这个问题 出现级联复制)image.png 需要配置slave_log_updates



20、MySQL复制性能优化

  1.   主从延迟的因素
  1. image.png
  2. image.png推荐后者
  3. image.png
  1. 配置多线程复制
  1. image.pngmysql5.7 设置4个线程 并设置并发为逻辑适中
  1. 复制常见问题
  1. image.png
  2. image.png
  3. image.png
  4. image.png一定要设置read_only
  5. image.png在从服务器的时候多个从服务器server_id一样比较隐蔽
  6. image.png
  7. image.png





21、高可用

image.pngimage.png


image.pngimage.png





22、MMM架构

   同一时间只有一台主服务器提供外部服务 从服务器read-only

   image.pngimage.png

image.png

   


   


22、MHA架构





23、索引策略

   

image.png

image.pngimage.pngimage.png


image.pngimage.png


image.png






24、SQL查询优化  通过日志形式


image.png


   image.png




  1. image.png
  2. image.png
  3. image.png


  4. image.png
  5. image.png
  6. image.png



   


25、SQL查询优化  实时查询


   image.png做个定时访问







26、sql解析预处理及生成执行计划

  1.    image.png
  2. image.png
  3. image.png





image.png


image.png


image.png



27、分库分表

   

   image.pngimage.png



终极大招:表的水平拆分



  image.pngimage.pngimage.png

image.png

image.pngimage.png









image.png






相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
25天前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
60 3
|
1月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
2月前
|
存储 运维 关系型数据库
从MySQL到云数据库,数据库迁移真的有必要吗?
本文探讨了企业在业务增长背景下,是否应从 MySQL 迁移至云数据库的决策问题。分析了 MySQL 的优势与瓶颈,对比了云数据库在存储计算分离、自动化运维、多负载支持等方面的优势,并提出判断迁移必要性的五个关键问题及实施路径,帮助企业理性决策并落地迁移方案。
|
19天前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。
|
20天前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
|
20天前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
19天前
|
SQL 关系型数据库 MySQL
Mysql数据恢复—Mysql数据库delete删除后数据恢复案例
本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启binlog。 人为误操作使用Delete命令删除数据时未添加where子句,导致全表数据被删除。删除后未对该表进行任何操作。需要恢复误删除的数据。 在本案例中的mysql数据库未进行备份,也未开启binlog日志,无法直接还原数据库。
|
25天前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
231 7
|
25天前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(上)
最终建议:当前系统是完美的读密集型负载模型,优化重点应放在减少行读取量和提高数据定位效率。通过索引优化、分区策略和内存缓存,预期可降低30%的CPU负载,同时保持100%的缓冲池命中率。建议每百万次查询后刷新统计信息以持续优化
89 6
|
25天前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
81 1

推荐镜像

更多