zoukankan      html  css  js  c++  java
  • 《Mysql

    一:分区/分表 为了什么?

      - 当MySQL单表数据量过大时,数据库的访问速度会下降,需要处理大量数据,所以需要把数据分散存储

      - 常用 "水平" 切分

    二:MySQL常见的水平切分方案有哪些?

      - 分库分表

      - 分区表

    三:分库分表?

      - 把一个很大的库(表)的数据分到几个库(表)中,每个库(表)的结构都相同,但他们可以分布在不同的MySQL实例,甚至不同的物理机器上,以达到降低单库(表)数据量提高读写性的目的。

      - 分库分表往往是业务层实施的,分库分表后,往往需要升级系统:

        - 修改某些SQL代码。

        - 丧失某些SQL功能。

    四:什么是分区表(不常用)?

      - 所有数据,逻辑上还在一个表中,但物理上,可以根据一定的规则放在不同的文件中。这是MySQL5.1之后支持的功能,业务代码无需改动。

      - 在 高并发/大流量 的场景下,分区表的一些缺点,是难以接受的

        - 如果SQL不走分区键,很容易出现全表锁

        - 在分区表实施关联查询,就是一个灾难。

        - 分库分表,自己掌控业务场景与访问模式,可控。分区表,工程师写了一个SQL,自己无法确定MySQL是怎么玩的,不可控

          - 类似于,不要把业务逻辑实现在存储过程,用户自定义函数,触发器里,而要实现在业务代码里一样。

        - DBA给OP埋坑,容易大打出手,造成同事矛盾

  • 相关阅读:
    实战DeviceIoControl 之中的一个:通过API訪问设备驱动程序
    hibernate官方新手教程 (转载)
    C++ 清空消息队列
    java中接口的定义与实现
    Scrum 学习笔记
    Ubuntu中全然卸载Nginx
    ScrollView 在嵌套 ViewPager 时出现的问题
    Java的递归算法
    Android GPS获取当前经纬度坐标
    【数据结构】——排序算法——1.1、直接插入排序
  • 原文地址:https://www.cnblogs.com/25-lH/p/10470439.html
Copyright © 2011-2022 走看看