当前位置: 首页 > article >正文

项目代码第10讲【数据库运维知识——如何优化数据库查询效率?】:各种日志查看;主从复制;分库分表(MyCat);读写分离;区别数据分区、分表、分库

01. 运维-课程介绍_哔哩哔哩_bilibili

一、各种日志查看

二、主从复制

三、分库分表(MyCat)

四、读写分离

 五、区别数据分区、分表、分库

1、数据库分区

上图中的ibd文件,是分区表的数据文件,可以分布在不同的物理设备上(存放在不同硬盘上,见1>2》),从而高效地利用多个硬件设备

作用:如下图,在查询的时候缩小了磁盘的扫描范围

1>分区表的优势

1》逻辑上是一个事务,无需额外干涉:

        跨多表操作时和单表操作是一样的。底层的数据一致性是由数据库自己保证的。

2》分区表的数据就是:上上(上)图的ibd文件,可以把数据存储分布在不同的硬盘上——>可并行的硬盘IO资源

        这点也有劣势,如下2>

2>分区表的劣势

1》可并行的硬盘IO资源(见1>2》)设备计算资源与内存资源无法突破单体极限:作为计算节点,CPU和内存资源都是在单机上完成的

        分区表的数据操作(如查询、更新等)尽管可以在逻辑上分开处理,但最终这些操作还是需要在单一计算节点上执行。

        这意味着CPU和内存资源受限于该节点的硬件限制。

        如果某个操作不能有效地被分散到多个节点或者分区中去,并且需要大量的计算资源或内存,那么这个操作的性能将会受到所在单机的硬件能力的限制。

2》【在设计前很难知道需要分区,所以这里也是一个限制】查询必须包含分区键,且分区键必须是主键的一部分,分区键必须是整数列或解析为整数的表达式。

举例:

《1》创建下述opr表,主键只有opr_no,没有包含分区键opr_data

        代码报错,要求分区键必须是主键的一部分

《2》解决《1》:添加分区键opr_data为主键的一部分

3>实际架构设计原则:不要过分依赖数据库或某个组件自带的特性,要完成一个相对通性的设计——从而引出数据分表

2、数据分表

1>范围分表

2>Hash分表

        可以解决数据不均衡的问题,但是当新增一个结点的时候,n就会从3变成4,就会进行全局数据的迁移工作。这个风险就太大了。

        所以针对Hash分表的时候一开始就会给足资源,或者进行局部数据的迁移和调整。

3、数据分库:最后考虑


http://www.kler.cn/a/613994.html

相关文章:

  • uni-app AES 加密
  • 判断质数及其优化方法
  • unity 做一个圆形分比图
  • 内网服务器无法通过公网地址访问映射到公网的内网服务
  • 使用事件监听器来处理并发环境中RabbitMQ的同步响应问题
  • 代码随想录算法训练营--打卡day1
  • maxDataPointsPerRollingArg must be at least 1
  • vue(1-45)
  • 方法指南:利用边缘计算实现低延迟直播流媒体服务
  • 如何用Java拆分PDF文件(教程)
  • 【C++数据库】SQLite3数据库连接与操作
  • 循环神经网络 - 给网络增加记忆能力
  • Avro 批量转换成 Json 文件
  • Python爬虫实战:批量获取中国知网(CNKI)文献摘要教程
  • 大型语言模型的秘密:思考链长度与提示格式的魔力
  • Css vertical-align与line-height
  • Windows下VSCode的安装
  • 在Cesium中使用ThreeJs材质(不是场景融合哦)
  • Transformer:破局山地暴雨预测的「地形诅咒」--AI智能体开发与大语言模型的本地化部署、优化技术
  • 深入解析铸铁测量平台的多面魅力——北重安装