数据库讲解

该文章只是听课时的记录,,不作为文章参考谢谢

  1. 数据库性能考虑在cpu 内存 还有io上
数据库讲解_第1张图片
mysql 的基本架构
  1. io 对数据库性能的影响最大
数据库讲解_第2张图片
io的分层

flashcache-> 提升io的能力 把ssd 作为机械硬盘的缓存

数据库讲解_第3张图片
扩展读的能力

中间层 先去读redis 如果redis 没有在读取mysql

  1. Proxy 们管理


    数据库讲解_第4张图片
    中间层管理数据库
数据库讲解_第5张图片
Mysql-Spider本质也是这种架构

有中间层后 分库分表 多写 有不同的方案

数据库讲解_第6张图片
分库分表

写能扩展 一写多读。 分布式事务容易有问题。

数据库讲解_第7张图片
一写多读

通过主库分给从库。 从库会自动同步主库的数据 ,不用解决分布式事务,缺陷是写是单入口。 mysql 使用集群, 上面两个架构有 一致性的问题。出现多写。是有问题的。数据库集群 去解决 数据库数据一致性的问题。 数据库状态由 集群自己控制。
多点写入 ,需要 同步节点检测。

  1. 新方案
    数据库讲解_第8张图片
    Paste_Image.png

    写的瓶颈 一个是磁盘空间 一个是io能力-->ps
    存在远程集群。存储空间不再受限,iops 也是可以水平 扩展的。剩下的读的能力就是cpu ,通过节点的问题 来解决cpu的能力。 远程的性能跟本地性能跑的一样快。加读节点数据越大时间越久,业务瓶颈。
  2. 应用中有时候会遇到有唯一约束的表,在scale out的时候有什么建议呢
    最好是分区键或者是一部分,插入的时候能定位到分区,能不冲突,。有冲突的字段 就得每个库都查下。
  3. 问数据库误删除很麻烦,有什么更好的方法吗
    备份加 ,,全量备份 log 日志 恢复到
    忘记加where ..数据库设置的问题
  4. mysql内存使用率居高不下,如何分析?具体消耗在哪一步?
    物理内存的80%, 数据线程使用的数
  5. 多写在PXC、MGR、分布式数据库,该如何选择?
    分布式 做了分片 反而不需要做冲突的问题,分库分表。保证原子性的问题。
    PXC 不能让
  6. 老师上面说的RDMA 下面存储数据 那新增机器了 数据不用再弄到新机器里面吗?
    做了分片,只做轻量级的数据备份、
  7. ceph 网络延迟太大。。

你可能感兴趣的:(数据库讲解)