zoukankan      html  css  js  c++  java
  • MySQL表分区

    分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表的增删改查效率

    什么是分表?
    分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实体表,我们可以称为子表,每个表都对应三个文件,MYD数据文件,.MYI索引文件,.frm表结构文件。这些子表可以分布在同一块磁盘上,也可以在不同的机器上。app读写的时候根据事先定义好的规则得到对应的子表名,然后去操作它。

    什么是分区?
    分区和分表相似,都是按照规则分解表。不同在于分表将大表分解为若干个独立的实体表,而分区是将数据分段划分在多个位置存放,可以是同一块磁盘也可以在不同的机器。分区后,表面上还是一张表,但数据散列到多个位置了。app读写的时候操作的还是大表名字,db自动去组织分区的数据。

    mysql分表和分区有什么联系呢?
    1.都能提高mysql的性高,在高并发状态下都有一个良好的表现。
    2.分表和分区不矛盾,可以相互配合的,对于那些大访问量,并且表数据比较多的表,我们可以采取分表和分区结合的方式(如果merge这种分表方式,不能和分区配合的话,可以用其他的分表试),访问量不大,但是表数据很多的表,我们可以采取分区的方式等。
    3.分表技术是比较麻烦的,需要手动去创建子表,app服务端读写时候需要计算子表名。采用merge好一些,但也要创建子表和配置子表间的union关系。
    4.表分区相对于分表,操作方便,不需要创建子表。

    分表的方式
    1、mysql集群 并不是分表但是却起到了和分表相同的 作用 可分担数据库的操作次数,将任务分担到多台数据库上,集群可以读写分离 减少读写压力 从而提升数据库性能

    2、自定义规则分表
    大表可以按照业务的规则来分解多个字表 利用自己的定义规则
    (1)Range(范围) 根据不同的范围来分表
    (2)Hash(哈希)通过对表的一列或者多列进行Hash的Key 的计算
    (3)key(键值)Hash模式的一种key是由MySQL产生的
    (4)List(预定义列)
    (5)Composite(复合模式)
    3、利用merge存储引擎来实现分表
    创建主表的时候有个INSERT_METHOD,指明插入方式,取值可以是:0 不允许插入;FIRST 插入到UNION中的第一个表; LAST 插入到UNION中的最后一个表。

    分区的几种方式:
    Range
    List
    Hash
    Key
    新增分区
    ALTER TABLE sale_data ADD PARTITION (PARTITION p201010 VALUES LESS THAN (201011));

    删除分区
    --当删除了一个分区,也同时删除了该分区中所有的数据。
    ALTER TABLE sale_data DROP PARTITION p201010;

    分区的合并
    下面的SQL,将p201001 - p201009合并为3个分区p2010Q1 - p2010Q3

    ALTER TABLE sale_data
    REORGANIZE PARTITION p201001,p201002,p201003,
    p201004,p201005,p201006,
    p201007,p201008,p201009 INTO
    (
    PARTITION p2010Q1 VALUES LESS THAN (201004),
    PARTITION p2010Q2 VALUES LESS THAN (201007),
    PARTITION p2010Q3 VALUES LESS THAN (201010)
    );

    插入:insert into 表名 (姓名,年龄,性别)values ('$name','$age','$sex');
    删除:delete from 表名 where id ='$id';
    查找:select * from 表名;
    修改:UPDATE runoob_tbl SET runoob_title='Learning JAVA' WHERE runoob_id=3;

  • 相关阅读:
    DRF频率、分页、解析器、渲染器
    DRF的版本、认证、权限
    Django Rest Framework 视图和路由
    restfull规范
    DRF序列化
    类的super
    AngularJs自定义指令详解(1)
    AngularJs自定义指令详解(5)
    angular 自定义指令详解 Directive
    require js define 函数
  • 原文地址:https://www.cnblogs.com/liuzhen123/p/8072230.html
Copyright © 2011-2022 走看看