tft每日頭條

 > 科技

 > polardb數據庫免費嗎

polardb數據庫免費嗎

科技 更新时间:2025-02-02 18:51:17

PolarDB-X實例支持3種類型的表:分區表、廣播表和單表。前面的文章已經實踐過分區表了,本文将介紹單表和廣播表的操作,以及不同表類型之間的相互轉換。

一、單表

PolarDB-X允許創建表時通過指定關鍵字SINGLE來創建單表(不進行任何分區的表),示例DDL如下:

CREATE TABLE single_tbl( id bigint not null auto_increment, bid int, name varchar(30), primary key(id) ) SINGLE;

查看該邏輯表的節點拓撲:

show topology from single_tbl;

如圖所示,隻有一個分區,也就是單表。

polardb數據庫免費嗎(PolarDB-X數據庫和表操作實踐)1

二、廣播表

PolarDB-X允許創建表時通過指定關鍵字BROADCAST來創建廣播表(該表将在所有DN節點上有一份數據完全相同的拷貝),示例DDL如下:

CREATE TABLE broadcast_tbl( id bigint not null auto_increment, bid int, name varchar(30), primary key(id) ) BROADCAST;

查看該邏輯表的節點拓撲:

show topology from broadcast_tbl;

如果PolarDB-X 集群中有三個DN 節點,那麼就會在三個DN 節點上相同的表,如圖所示:

polardb數據庫免費嗎(PolarDB-X數據庫和表操作實踐)2

三、表類型轉換

PolarDB-X實例支持3種類型的表:分區表、廣播表和單表。我們可以通過ALTER TABLE語句将表的類型在分區表、廣播表和單表之間進行轉換,同時還能對分區表的分區策略進行變更。

polardb數據庫免費嗎(PolarDB-X數據庫和表操作實踐)3

(1)單表或廣播表變為分區表

因業務擴展,單表 single_tbl 無法承載日益增長的數據。此時,可以使用如下語句将該單表變更為分區表(以 id 為分區鍵,采用KEY分區策略):

ALTER TABLE single_tbl PARTITION BY KEY(`id`);

polardb數據庫免費嗎(PolarDB-X數據庫和表操作實踐)4

如需指定分區數量,可以使用如下語句:

ALTER TABLE single_tbl PARTITION BY KEY(`id`) PARTITIONS 8;

(2)單表或分區表變為廣播表

可以使用如下語句将單表或分區表 single_tbl 變更為廣播表:

ALTER TABLE single_tbl BROADCAST;

執行完成之後,可以該邏輯表的節點拓撲,以及查看full create table 語句,如圖所示:

polardb數據庫免費嗎(PolarDB-X數據庫和表操作實踐)5

(3)廣播表或分區表變為單表

可以使用如下語句将廣播表或分區表 single_tbl 變更為單表:

ALTER TABLE single_tbl SINGLE;

或者:

ALTER TABLE single_tbl REMOVE PARTITIONING;

polardb數據庫免費嗎(PolarDB-X數據庫和表操作實踐)6

四、變更分區表的分區策略

使用如下語句在PolarDB-X數據庫中創建了一張分區表 part_order(根據order_id列進行KEY分區):

CREATE TABLE part_order ( `id` bigint(11) NOT NULL AUTO_INCREMENT, `order_id` varchar(20) DEFAULT NULL, `buyer_id` varchar(20) DEFAULT NULL, `seller_id` varchar(20) DEFAULT NULL, `order_snapshot` longtext DEFAULT NULL, `order_detail` longtext DEFAULT NULL, PRIMARY KEY (`id`), KEY `l_i_order` (`order_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 PARTITION BY KEY(`order_id`);

執行過程如下所示:

polardb數據庫免費嗎(PolarDB-X數據庫和表操作實踐)7

現需要對part_order表的分區策略作出如下變更:

  • 根據order_id列以及buyer_id進行KEY分區。
  • 共包含8個分區。

可以使用如下語句實現上述變更:

ALTER TABLE part_order PARTITION BY KEY(order_id, buyer_id) PARTITIONS 8;

polardb數據庫免費嗎(PolarDB-X數據庫和表操作實踐)8

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved