MemSQL 文档整理 MemSQL 是一款高性能的分布式关系数据库管理系统,支持实时数据分析和事务处理。下面是 MemSQL 的架构、角色、表类型、配置和优化等知识点。 架构 ---- MemSQL 的架构主要由三部分组成:Aggregator、Leaf Node 和 Client。 * Aggregator:主要负责查询叶子节点、整合查询结果、返回查询结果给客户端。Master Aggregator 是集群中的主节点,负责集群操作、监控、故障处理和执行 DDL 语句。 * Leaf Node:负责存储和计算,每个 Leaf Node 由多个 Partition 组成,每个 Partition 相当于节点服务器上的一个数据库。 角色 ---- MemSQL 中有两种角色:Master Aggregator 和 Leaf Node。 * Master Aggregator:负责集群操作、监控、故障处理和执行 DDL 语句。 * Leaf Node:负责存储和计算。 表类型 ---- MemSQL 中有三种表类型:Reference Table、Sharded Table 和 Temporary Table。 * Reference Table:master aggregator 上创建和修改,每个节点都会存一份完整的数据,适用于记录数较少且不频繁变化的表。 * Sharded Table:master aggregator 上创建,根据 shard key 把表切分存在各个 partitions 上,适用于大数据量和高性能查询。 * Temporary Table:任意 aggregator 都可创建,临时存在于客户端连接的 session 中,用于复杂计算中的中间结果存储。 Sharded Table 中有两种存储方式:Row Store 和 Column Store。 * Row Store:适合有混合的交易事务或分析负载,提供低延时和高并发读写支持,主键和唯一键增删改频繁表恢复相对 Column Store 需要更长的时间。 * Column Store:适合于分析负载,允许表的大小大过集群内存大小,有压缩(减少存储,加速复制),支持大数据集快速高效查询。 配置和优化 ------------ ### 硬件配置 MemSQL 官方推荐的硬件配置可以根据实际情况进行调整,以满足不同的性能需求。 ### Shard key 设置 Shard key 决定表里的行如何分布,可以包含任意个字段,尽量避免数据倾斜的字段,选做过滤或关联的字段(可减少网络拥塞)。 ### 索引 MemSQL 支持多种索引类型,包括 Skip Lists、Hash Tables 和 Geospatial Indexes 等,默认索引类型是 Skip List。 ### Analyze Analyze 命令可以搜集列的统计信息,如空值数、总数等,也可以搜集 Range statistics,主要用来优化加速查询,达到最优的查询计划。 ### 集群参数 Child Aggregator 的个数可以根据实际情况进行调整,以满足不同的性能需求。 ### 查询优化 可以使用 SQL 语句查看最热的查询,并对其进行优化。
- 粉丝: 6
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助