完成集群、租户和数据库的创建后,我们将带领您登录数据库,并创建一个名为 order 的表,并使用 Hash 分区将表分为 16 个分区。
背景信息
表信息大概如下:
概念介绍
OceanBase 数据库可以把普通的表的数据按照一定的规则划分到不同的区块内,同一区块的数据物理上存储在一起。这种划分区块的表叫做分区表,其中的每一个区块称作分区。OceanBase 数据库的 MySQL 模式中,单个表最多支持创建的分区个数为 8192 个。
Hash 分区
Hash 分区适合于对不能用 Range 分区、List 分区方法的场景,它的实现方法简单,通过对分区键上的 Hash 函数值来散列记录到不同分区中。如果您的数据符合下列特点,使用 Hash 分区是个很好的选择,更多内容参见分区概述。
不能指定数据的分区键的列表特征。
不同范围内的数据量相差非常大,并且很难手动调整均衡。
使用 Range 分区后数据聚集严重。
并行 DML、分区剪枝和分区连接等性能非常重要。
Hash 分区的分区键必须是整数类型或 YEAR 类型,并且可以使用表达式。
CREATE TABLE tbl1 (col1 INT PRIMARY KEY, col2 INT)
PARTITION BY KEY()
PARTITIONS 5;
Query OK, 0 rows affected
操作步骤
单击左侧导航栏数据库管理。
单击右上角 登录数据库。
在弹出框中,选择 admin_user,并单击确定。
在弹出框中,填写密码,并单击确定。
连接成功后,单击 information_schema 切换到 tutorial_database 数据库。
在 SQL 窗口中填入如下信息:
CREATE TABLE `orders` ( `id` int(11) NOT NULL AUTO_INCREMENT, `customer_id` int(11) NOT NULL, `order_date` datetime NOT NULL, `shipping_date` datetime DEFAULT NULL, `status` varchar(10) NOT NULL, `subtotal` decimal(10,2) NOT NULL, `tax` decimal(10,2) NOT NULL, `shipping` decimal(10,2) NOT NULL, `total` decimal(10,2) NOT NULL, `address` varchar(200) NOT NULL, `city` varchar(100) NOT NULL, `state` varchar(50) NOT NULL, `country` varchar(50) NOT NULL, `zip_code` varchar(20) NOT NULL, `phone` varchar(20) DEFAULT NULL, `email` varchar(100) DEFAULT NULL, `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL, `deleted_at` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) AUTO_INCREMENT = 520001 partition by hash(`id`) ( partition p0, partition p1, partition p2, partition p3, partition p4, partition p5, partition p6, partition p7, partition p8, partition p9, partition p10, partition p11, partition p12, partition p13, partition p14, partition p15 );
单击运行按钮,并查看执行结果。
文档内容是否对您有帮助?