开发者社区 问答 正文

什么是分表/逻辑表



分表/逻辑表



定义

  • 当业务达到一定规模后,需要通过分库分表来进行负载均衡从而达到大量业务压力场景下平滑支撑的能力。
  • 表的数量>1,按照逻辑库进行均分一般表的个数为2的指数幂
  • 一般表名后缀为_xxxx,即下划线4位数字从0开始递增补齐
  • 表数量需要能被库的数量整除均分(如表的数量1024,库的数量32,则每个库均分32张物理表;若表的数量为1024,库的数量为33,则无法均分不支持创建)
典型的场景有
  • 单库-分表单个物理库下面分表
分库-分表【最常见】
  • 按序逐个物理库内物理表数字递增均分
  • 每个库相同表名,如每个库都是01-12的12张分表
分库-不分表(即分库同表名)
  • 常见的有:每个分库下有同一个物理表名


用途

  • 满足以上三种情况的场景后非常核心的关键点,“逻辑表” 一定要在【逻辑库】下进行操作。
    1. 数据源权限申请直接申请逻辑表权限即开通其关联的所有物理表的对应权限
  1. SQL Console数据查询
  1. 数据导出
  1. 数据变更
以上各入口支持选择具体【逻辑库】后,针对“逻辑表”可当做单表直接使用

配置

  • 初始化配置逻辑库后,根据逻辑库下物理表结构会自动抽取逻辑表。配置不支持用户自主调整抽取规则:同一个物理表只能出现在一个逻辑表配置中
  • 同一个逻辑表对应的所有物理表的结构(字段名、字段类型)需要严格一致,若不一致则无法聚合 扩展价值可为用户提供不一致数据预警
新增
  • 非平台新增的逻辑表,可以通过搜索到逻辑库结果列表,下拉操作-更多抽取库下逻辑表自助触发增量抽取


FAQ

  • Q:如果逻辑库逻辑表已经存在【不需要新建物理表】,但是不在逻辑库显示的表列表中A:可以通过搜索找到逻辑库操作-更多下拉抽取库下逻辑表


展开
收起
云栖大讲堂 2017-11-02 11:55:58 2681 分享 版权
阿里云 AI 助理回答

分表和逻辑表是数据库优化和扩展策略中的重要概念,尤其在处理大规模数据和高并发访问的场景下。下面我将基于阿里云相关产品(如PolarDB、DRDS等)的知识来解释这两个概念及其应用。

分表

定义: - 分表是指将一个大表按照某种规则拆分成多个小表的过程,以达到分散数据量、提高查询效率和减轻单个表的压力的目的。常见的分表方式包括垂直分表(按列分割)和水平分表(按行分割)。在实际应用中,水平分表更为常见,它通常根据某个字段(如用户ID的范围)将数据分配到不同的表中。

用途: - 通过分表可以有效解决单表数据量过大导致的性能瓶颈问题,比如提高查询速度、减少锁表竞争、优化索引使用等。 - 适用于需要处理大量数据写入和读取的场景,如电商的商品信息、订单记录、用户行为日志等。

逻辑表

定义: - 逻辑表是在物理分表之上构建的一个抽象层,对应用程序透明,使得开发者和运维人员可以像操作单个表一样操作一组分表。逻辑表不直接对应于物理存储上的单一实体,而是代表了一组具有相同结构的物理表集合。

用途: - 提供了一个统一的访问接口,简化了分布式数据库的管理和使用复杂度。应用程序无需关心数据是如何分布在不同物理表中的,只需操作逻辑表即可。 - 在阿里云的分布式数据库服务(如DRDS)中,逻辑表自动管理数据分布和路由,支持跨库跨表的SQL操作,实现透明的数据分片。

配置与管理: - 阿里云平台通常提供了自动化或半自动化的工具来帮助用户创建和管理逻辑表,包括初始化配置逻辑库、自动抽取逻辑表、调整分片规则等。 - 用户可以通过控制台进行逻辑表的权限管理、数据查询、导出和变更操作,而不需要关心底层物理表的具体分布情况。

FAQ解答示例: Q:如果逻辑库已经存在,但某些逻辑表没有显示在列表中怎么办? A: 这种情况下,用户可以通过控制台提供的搜索功能找到对应的逻辑库,然后在逻辑库的管理界面中选择“更多操作”或类似的选项,触发重新抽取逻辑库下的所有物理表的操作,这样未显示的逻辑表应该会被更新到列表中。确保所有相关的物理表结构一致,以便系统能够正确识别并聚合为逻辑表。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: