当前位置:网站首页>GBase 8s分片技术介绍
GBase 8s分片技术介绍
2022-08-11 05:21:00 【蜻蜓队镸】
分片的概念和分类
分片是数据表和索引上的一项技术,通常一张表的数据存放在一个dbspace上。下面先讲讲分片的好处,为什么需要分片,第一,假设一张表上同时有很多的索引,当数据量变得很大时,索引的层数也随之增加,因此定位你所查找的记录时,所访问的页面就会相应地增加,SQL的性能就会因为数据量的逐渐变大而变慢;第二,假设有一张表存放了一年的数据,这个表上没有任何的索引,但是大多数人都是访问最近一个月的数据,由于没有索引,那么每个更新或者查询操作都需要去查看全年的数据,性能肯定不会好;第三,假设需要在一张表上做统计的操作,需要扫描整张表的信息,这个统计操作没有索引可以使用,索引对这个统计操作也没有任何的帮助,这类操作肯定很慢。这些问题在实际的使用中时很常见的,在GBase 8s中通过数据分片可以解决这些问题。
另外一个分片的原因时为了解决数据存储上限的问题。
在GBase 8s中,分片有两种形式,一种是和列的值没有关系,另一种是和列的值有关系。第一种称做轮循方式的分片,简单来说,就是假设你的表存放在10个分区上,那么插入的第1条记录将存放在第1个分区上,第2条记录存放在第2个分区上,以此类推,第11条记录存放在第一个分区上,因此最终的结果是每个分区上存放的记录是相同的;第二种分片技术是指按一个或者多个列的值的不同,将每个记录放在相对应的分区上。第二种分片的技术又细分为按表达式分区,按列表分区、按间隔分区。
表达式分区是指在创建表时指定了一个分变的表达式,在插入或者更新数据时,会去计算这个表达式的值,如果满足表达式中的条件,就把这条记录存放在和表达式相关联的分区中。在分片的表达式中可以有多个列,可以使用and和or操作符。Oracle的哈希(hash)分区是表达式分区的一个子集。
列表分区是指基于列表去判断将记录存放在对应的分区中,列表中的值和一个列的值是相关联的。
间隔分区是指每隔一个时间段或每隔N条数据分配一个分片,间隔分区只作用于数值类型、日期类型(只包括年月日)和时间戳类型(包括年月日时分秒毫秒)。
边栏推荐
- Mobx--store状态管理工具
- 利用Redis的bitMap完成用户签到功能
- npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
- 《现代密码学》学习笔记——第五章 密钥分配与密钥管理
- Markdown编辑器
- 实例分析MySQL四种隔离级别的区别
- 表单input控件数据双向绑定
- C language - program compilation and execution, detailed macro definition
- 动态表单配置select
- LVS负载群集--DR模式
猜你喜欢
随机推荐
关于电脑电源选项,开合盖设置
IDEA本机连接远程TDengine不成功,终于配置成功
xss.haozi靶场通关
uniapp中设置tabBar及其窗口标题
09-ES6语法:变量、箭头函数、类语法、静态属性及非静态属性
Redis客户端管理神器RedisInsight 推荐
docker搭建redis主从和哨兵模式集群
C language file operation - detailed explanation of data file type, file judgment, and file buffer
08-Express路由详解
云计算学习笔记——第二章 虚拟化与容器
《现代密码学》学习笔记——第三章 分组密码 [三]分组密码的运行模式
实例分析MySQL四种隔离级别的区别
C - file operations fseek () function, ftell, rewind, rounding
08-JS对象、原型及原型链
emqx创建规则引擎写入tDengine
代币标准--ERC721协议源码解析
列表渲染 map 与 v-for
云计算学习笔记——第一章 云计算介绍
ES6新增数据类型-Symbol
leetcode21. Merge two ordered linked lists