Database

  • 课程目标
  • 环境准备:
  • 一.二八原则
  • 二.数据库读写分离
    • 好处:
    • 绝大部分的企业内部应用,可能不需要上图那么庞大的架构,一台主数据库服务器和一台查询服务器通常能满足读写分离的要求。而且应用程序调整起来非常方便:
    • 适用场景:
  • 三.SqlServer多种读写分离
    • 快照发布:
    • 事务发布:
    • 对等发布:
    • 合并发布:
    • 读写分离以后,其实是把查询动作分摊到不同的数据库中去了;提高性能
  • 四.分库
  • 五.分表
  • 六.分库分表注意事项

课程目标

1 数据库使用规则
2 二八原则
3 数据库查询集群–数据库读写分离多种实现
4.数据库配置读写分离

环境准备:

Microsoft SQL Server Management Studio 18 2012以上;

一.二八原则

  1. 通常,我们的(添加、修改、删除)操作,在数据库中,只占有百分之二十的一部分。而剩下百分之80的操作,都是进行查询。
  2. 我们根据这个原则,可以对我们数据库进行读写分离。

二.数据库读写分离

好处:

  1. 数据是网站的生命,读写分离通过主从备份数据,保证了系统的冗余,保护了珍贵的数据。 通过将
    “读”操作和“写”操作分离到不同的数据库服务器上,降低对主服务器的CPU、内存、存储、网络资源的争
    用;
  2. 主服务器的增删改进行时,不影响查询服务器的查询,降低阻塞的发生,提高了并发性;
  3. 在应用程序提交了报表请求、不合理的查询请求时,不会导致长时间的锁表;
  4. 建立容灾副本甚至实现异地容灾,在发生灾难时,可以减少数据的损失;

绝大部分的企业内部应用,可能不需要上图那么庞大的架构,一台主数据库服务器和一台查询服务器通常能满足读写分离的要求。而且应用程序调整起来非常方便:

  1. 在应用程序的配置文件中设置两个数据库连接字符串,一个指向主服务器,一个指向查询服务器;
  2. 增删改或者实时性查询使用指向主服务器的连接字符串;
  3. 允许非实时的查询及报表请求使用指向查询服务器的连接字符串。

适用场景:

  1. 网站初期想要缓解数据负载最简单可行的方案。
  2. 服务器面对的是读远大于写的场景,并且业务能够允许时间上一些延迟。
    主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;
    二是可在从数据库作备份、数据统计等工作,这样不影响主数据库的性能;
    当一个从服务器连接主服务器时,它通知主服务器从日志中读取最后一次成功更新的位置。
    从服务器接收从那时起发生的任何更新,并在本机上执行相同的更新。然后封锁并等待主服务器通知新
    的更新。
    从服务器执行备份不会干扰主服务器,在备份过程中主服务器可以继续处理更新

三.SqlServer多种读写分离

快照发布:

介绍:数据库快照就想象成相机就可以了,就是将数据库拍下来,拍摄个一模一样的。做一次备份
优势:类似一个人成长,有很多张照片,例如你每年拍一张,那么以后查看起来是非常方便的。
劣势:这个无法做到实时备份,只能是某一刻的一个备份,很多需求会不满足,而且如果数据量非常
大,那么对性能也有一定的的消耗

事务发布:

介绍:也是两个库,一个主库一个从库,主从库之间是一种发布订阅的关系,就是我修改了通知你,
或者你时时来读取我,看看我是否修改了,就这么简单
优势:他是读取的日志文件,根据日志文件达到同步的,所以基本可以满足同步,并且我粗略的测试
了一下,除非服务器堵塞,否则性能还是很高的,百万数据同步几秒钟就可以完成,足见其效率了。
劣势:发布者和订阅者之间并非实时同步的,所以经常会有延时,这个就属于不定性因素的,而且消
耗>数据库镜像 .
详细操作地址
https://blog.csdn.net/hello_mr_anan/article/details/118093045

对等发布:

介绍:

合并发布:

介绍:合并发布是相当于两台都是主服务器,都可以对数据进行更新修改等操作,然后定时将发布服
务器上的内容与订阅服务器上的内容进行合并,并根据配置保留相应内容,此种很少用。
图片总结:

读写分离以后,其实是把查询动作分摊到不同的数据库中去了;提高性能

本质是通过增加硬件+数据的读写法分离机制;如何通过纯技术手段来解决数据库性能瓶颈呢?

四.分库

场景:应用于海量数据;数据一旦太多,基本上性能优化的套路都失效;
把数据分摊:把数据库切分:

  1. 垂直拆分:按照需求拆分:电商系统----一个数据====多个数据库,每个数据库负责一个模块;拆分以后,每个数据库的数量减少了,数据操作来说提高性能;
    特点:每个数据库的表结构都不同;
    局限:拆分后关联查询复杂----建议如果遇到关联查询比较多,就不要拆开—根据具体场景来做;
  2. 水平拆分
    特点:每个数据库的结构都一致,数据不一致;(区域/时间/类别/随机(定义一套规则----存入数据的时
    候确定是哪个数据库,查询数据的时候,还是通过这个规则确定是哪个数据))
    劣势:数据操作的时候,不方便,需要程序来支持;

五.分表

  1. 垂直分:
    表和表示一对一的关系;
    一个表存在字段,用多个表成列(建议大家把常用的字段分在一个表);
    文章表:20字段+很长的文章内容字段==垂直拆分,20个字段一个表,文章内容+外键一个表
  2. 水平分:
    表结构一致,数据不一致;
    拆分建议:时间/类别/区域

六.分库分表注意事项

  1. 程序需要支持;
    建议:大家一定要按照场景需求来,
    房产----城市拆分
    电商:时间来拆分
    追求平均:保存数据的时候,如果有ID ,如果来十个表存储;通过Id/10 取余数确定到哪个表,定
    义规则,保存需要按照规则保存,查询自然要要按照规则查询;
  2. 更多的也是建议,如果大家有自己的想法,有更好的方案,也欢迎大家提出来
  3. 如果频繁使用,频繁关联的内容,尽量聚在一起个表(一个数据库)

17.sql server数据库使用规则、二八原则、数据库查询集群--数据库读写分离多种实现、数据库配置读写分离(by-朝夕)相关推荐

  1. 【数据库】关于SQL SERVER的排序规则的问题分析

    在安装报表系统,运行sql语句时候提示"无法解决 equal to 操作的排序规则冲突.",费了半天时间才搞定,原来是因为sql语句中没有加全collate Chinese_PRC ...

  2. SQL Server 字段类型 decimal(18,6)小数点前是几位?记一次数据库SP的BUG处理

    原文:SQL Server 字段类型 decimal(18,6)小数点前是几位?记一次数据库SP的BUG处理 SQL Server 字段类型 decimal(18,6)小数点前是几位? 不可否认,这是 ...

  3. SQL SERVER 的排序规则

    有时候查询数据库的时候会发现(比如做重名检查的时候):数据库的查询时对大小写不敏感的,也就是 A 和 a 是一样的. 也就是说 select * from tabletest where name = ...

  4. Mysql数据库(十一)——MHA高可用集群部署及故障切换

    Mysql数据库(十一)--MHA高可用集群部署及故障切换 一.MHA概述 二.MHA的组成 三.MHA的特点 四.案例环境 1.服务器配置 2.思路 3.关闭防火墙和安全机制,并进行主从配置 4.配 ...

  5. oracle集群服务创建表空间,Oracle数据库集群添加表空间操作规范

    Oracle数据库集群添加表空间操作规范 Oracle数据库集群添加表空间操作规范 1.首先检查dg空间是否充足SQL> select name,total_mb,free_mb,USABLE_ ...

  6. Docker下Redis Cluster分片集群的搭建、基本操作、集群扩容和集群故障转移(非关系型数据库技术课程 第九周)

    文章目录 Docker 下Redis Cluster 分片集群搭建 1. Cluster 分片集群 1.1 Cluster 集群的结构和作用 1.2 Cluster 分片集群 的作用 1.3哈希槽(h ...

  7. 数据库原理与应用(SQL Server)笔记 第二章 简单数据查询

    文章目录 前言 一.SELECT 子句 (一)投影指定的列和投影全部列 (二)AS子句修改查询结构的列标题 例题1 (三)TOP谓词限制结果集中的行数 (四)INTO子句将结果插入新表中 例题2 (五 ...

  8. sql server创建新用户名登录以及为表添加角色和权限的多种方法

      1.在SQL Server Management Studio中为所属的SQL服务器设置为SQL Server和Windows NT混合安全认证模式.其步骤如下: (1)    在对象资源管理器中 ...

  9. SQL Server 调优系列基础篇 - 子查询运算总结

    前言 前面我们的几篇文章介绍了一系列关于运算符的介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符.有兴 ...

最新文章

  1. linux mysql 数据目录迁移后不生效_Linux中更改转移mysql数据库目录的步骤
  2. 基于stm32f429的手写识别_关注智能手机老年用户:百度输入法手写模型迎来重磅升级...
  3. python如何画曲线图_如何使用python画曲线图
  4. 天池又上工业视觉检测算法大赛:瓶装白酒疵品质检
  5. JS中对于prototype的理解
  6. 学者当自树其帜——为一本书专建的“第二次宣言网”上线有感
  7. 海洋工作室——网站建设专家:全数据库比较工具
  8. android 日期下拉选择控件,Android 中日期控件与下拉列表的使用
  9. 《穿越计算机的迷雾》读书笔记九
  10. cad字体安装_CAD字体大全下载【软件下载】
  11. 用flash做古诗动画_《古诗三首》Flash动画课件
  12. 关系数据库到Hbase数据库的数据迁移
  13. 如何将本地代码保存至码云中
  14. 宝塔怎么看蜘蛛爬取日志
  15. 教育之星 计算机,冉冉升起的教育之星
  16. Flex布局实战:支付宝首页
  17. 白城师范学院计算机系鲍金玲,白城师范学院举办程序设计竞赛
  18. 麒麟系统开机自启动服务、执行脚本、命令
  19. 【观察】从最佳实践走向行业赋能,华为重构数字化办公新体验
  20. 【时序】TCCT:用于时间序列预测的紧耦合卷积 Transformer

热门文章

  1. HDOJ 1495 倒可乐(BFS)
  2. js删除数组内多个指定下标的元素
  3. c#窗体编辑个人简历_C#开发工程师完整简历范文
  4. ros中msg文件的bool类型并不会生成bool类型变量
  5. abaqus切削为什么没有切屑_Abaqus切削仿真常见问题及其解决个人总结
  6. 15个经典面试问题及回答思路,很多人死在了最后一个问题上
  7. ISO26262解析(十)——HSI
  8. TOGAF学习札记(二)
  9. 网站快速排名百度首页搜索前十名
  10. des 加密 iOS