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

mysql学习笔记-数据库其他调优策略

1、如何定位调优问题

用户的反馈(主要)
日志分析(主要)
服务器资源使用监控
数据库内部状况监控

2、调优的维度和步骤

第1步:选择适合的 DBMS
第2步:优化表设计
第3步:优化逻辑查询
第4步:优化物理查询(在这个部分中,我们需
要掌握的重点是对索引的创建和使用。)
第5步:使用 Redis 或 Memcached 作为缓存
第6步:库级优化
6.1 读写分离
在这里插入图片描述
6.2 数据分片
在这里插入图片描述
在这里插入图片描述

3、优化数据库结构

3.1拆分表:冷热数据分离
3.2 增加中间表
3.3 增加冗余字段
3.4 优化数据类型
3.5 优化插入记录的速度
3.6 使用非空约束
3.7 分析表、检查表与优化表

4、大表优化

4.1 限定查询的范围(禁止不带任何限制数据范围条件的查询语句)
4.2 读/写分离
4.3 垂直拆分
分库:如果数据库中的数据表过多,可以采用 垂直分库 的方式,将关联(业务类型相同)的数据表部署在同一个数据库上。
如果数据表中的列过多,可以采用 垂直分表 的方式,将一张数据表分拆成多张数据表,把经常一起使用的列放到同一张表里。
垂直拆分的优点: 可以使得列数据变小,在查询时减少读取的Block数,减少!/0次数。此外,直分区可以简化表的结构,易于维护。
垂直拆分的缺点: 主键会出现冗余,需要管理冗余列,并会引起 JOIN 操作。此外,垂直拆分会让事务变得更加复杂。
4.4 水平拆分
①尽量控制单表数据量的大小,建议控制在1000万以内。
②将大的数据表按照 某个属性维度 分拆成不同的小表,每张小表保持相同的表结构。比如你可以按照年份来划分,把不同年份的数据放到不同的数据表中。2017年、2018年和 2019 年的数据就可以分别放到三张数据表中。
③水平分表仅是解决了单一表数据过大的问题,但由于表的数据还是在同一台机器上,其实对于提升MySQL并发能力没有什么意义,所以 水平拆分最好分库,从而达到分布式的目的。
在这里插入图片描述

http://www.lryc.cn/news/529484.html

相关文章:

  • Office / WPS 公式、Mathtype 公式输入花体字、空心字
  • (done) MIT6.S081 2023 学习笔记 (Day6: LAB5 COW Fork)
  • SYN Flooding的攻击原理
  • MYSQL--一条SQL执行的流程,分析MYSQL的架构
  • cmd命令行无法进入D:盘怎么办
  • CRC校验详解
  • windows系统本地部署deepseek及webui界面
  • (算法竞赛)使用广度优先搜索(BFS)解决迷宫最短路径问题
  • Sqoop源码修改:增加落地HDFS文件数与MapTask数量一致性检查
  • 嵌入式系统|DMA和SPI
  • leetcode——将有序数组转化为二叉搜索树(java)
  • 冯诺依曼结构和进程概念及其相关的内容的简单介绍
  • Native Memory Tracking 与 RSS的差异问题
  • 在K8s中部署动态nfs存储provisioner
  • 家庭财务管理系统的设计与实现
  • 数据结构-Stack和栈
  • 使用vhd虚拟磁盘安装两个win10系统
  • 代码随想录34 动态规划
  • 【2025年最新版】Java JDK安装、环境配置教程 (图文非常详细)
  • Shell特殊状态变量以及常用内置变量总结
  • 【4Day创客实践入门教程】Day4 迈向高手之路——进一步学习!
  • EtherCAT-快速搭建
  • 【设计测试用例自动化测试性能测试 实战篇】
  • DBeaver连接MySQL提示Access denied for user ‘‘@‘ip‘ (using password: YES)的解决方法
  • 【MySQL — 数据库增删改查操作】深入解析MySQL的 Update 和 Delete 操作
  • 04树 + 堆 + 优先队列 + 图(D1_树(D1_基本介绍))
  • 【Proteus仿真】【51单片机】多功能计算器系统设计
  • Solon Cloud Gateway 开发:Route 的配置与注册方式
  • jstat命令详解
  • [Collection与数据结构] B树与B+树