实战演练 | 使用 Navicat 对 MySQL 表进行分区

在之前的文章《MySQL 8 中的数据类型转换》中,我们了解了在处理大型数据集时利用数据库分区的潜在用途和优势。在今天的后续文章中,我们将使用哈希分区准则在 Navicat for MySQL 中创建一个 MySQL 分区。

在 Navicat 中启动分区对话框

在 Navicat 中,你会在表设计器的“选项”选项卡(页面底部)中找到“分区”按钮:

点击此按钮可打开“分区”对话框。

在表上创建哈希分区

“分区”对话框中的第一个控件是分割由下拉菜单:

支持的分区类型取决于数据库类型和版本。以下是你可以在 Navicat 中找到 MySQL 7 的选项:

  • Range partitioning(范围分区):范围(或间隔)分区在组织类似数据时很有用,特别是日期和时间数据。因此,范围分区非常适合对历史数据进行分区。
  • List partitioning(列表分区):根据离散值将行显式映射到分区。例如,南部各州的所有客户可以存储在一个分区中,而北部各州的客户可以存储在不同的分区中。
  • Composite partitioning(复合分区):基于分区键标识的多维分区。例如,你可能决定以只读、压缩格式存储特定产品类型的数据,并保持其他产品类型数据未压缩。复合分区还显着增加了分区数量,这可能有利于高效并行执行。
  • Round-robin partitioning(循环分区):以循环方式将行分配给每个分区,以便每个分区包含或多或少相等的行数,并实现负载平衡。在这种情况下,没有分区键,因此行在所有分区中随机分布。
  • Hash partitioning(哈希分区):基于历史数据在分区之间随机分布数据,而不是将相似的数据分组。尽管可以识别分区键,但在不知道应该驻留在哪个分区数据中的情况下仍很有用。因此,数据的分布使其不对应于业务或数据的逻辑视图,就像范围分区中那样。

注意事项

为了从分区中受益,你需要确保:

  • 如果你确实提供了对表进行分区的列,则它是该表中每个唯一键的一部分。
  • 你正在用查询中最常用的列对表进行分区。否则,创建分区将没有任何好处。

定义分区详细信息

“分区”对话框支持许多选项,包括子分区以及手动创建分区定义的能力。但是,对于简单的哈希分区,我们只需要提供分区准则、(表列)和分区数:

点击“确定”按钮,只需简单的一步即可创建分区!

在“SQL 预览”选项卡中,你可以查看 Navicat 生成的 SQL 语句

ALTER TABLE `sakila2`.`film` PARTITION BY HASH (actor)
PARTITIONS 10
(PARTITION `p0` MAX_ROWS = 0 MIN_ROWS = 0 ,
PARTITION `p1` MAX_ROWS = 0 MIN_ROWS = 0 ,
PARTITION `p2` MAX_ROWS = 0 MIN_ROWS = 0 ,
PARTITION `p3` MAX_ROWS = 0 MIN_ROWS = 0 ,
PARTITION `p4` MAX_ROWS = 0 MIN_ROWS = 0 ,
PARTITION `p5` MAX_ROWS = 0 MIN_ROWS = 0 ,
PARTITION `p6` MAX_ROWS = 0 MIN_ROWS = 0 ,
PARTITION `p7` MAX_ROWS = 0 MIN_ROWS = 0 ,

PARTITION `p8` MAX_ROWS = 0 MIN_ROWS = 0 ,
PARTITION `p9` MAX_ROWS = 0 MIN_ROWS = 0 )
;

总结

在今天的文章中,我们使用哈希分区准则在 Navicat for MySQL 中创建了一个 MySQL 分区。如果你对 Navicat for MySQL 感兴趣,可以免费试用 14 天!

往期回顾

Navicat 被投毒了 | 真相来了!

盗版引发设备瘫痪

Navicat 16.1 为OceanBase 社区版

Navicat 成为信通院数据库创新实验室成员

Navicat 学术伙伴计划 - 免费教育版申请

Navicat 技术智库 - 实战演练与各类热门问题解答

免费试用攻略 | Navciat 16 数据库管理工具

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值