O comando CREATE DATABASE cria um banco de dados lógico no PolarDB-X. Ao criar o banco de dados, especifique o conjunto de caracteres padrão, a collation, a localidade de armazenamento e o modo de particionamento.
Sintaxe
create_database_stmt:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] database_name [database_option_list]
database_option_list:
database_option [database_option ...]
database_option:
[DEFAULT] {CHARACTER SET | CHARSET} [=] charset_name
| [DEFAULT] COLLATE [=] collation_name
| LOCALITY = locality_option}
| [{PARTITION_MODE|MODE} = partition_mode_option]
| [DEFAULT_SINGLE = default_single_option]
locality_option:
'dn=storage_inst_id_list'
storage_inst_id_list:
storage_inst_id[,storage_inst_id_list]
partition_mode_option:
{'auto'|'partitioning'}
|{'drds'|'sharding'}
default_single_option:
{'on'|'off'}
Observações de uso
Instâncias da Standard Edition não suportam a sintaxe
DBPARTITION BY, usada para criar shards de banco de dados e de tabela.Apenas instâncias da Enterprise Edition permitem criar bancos de dados no modo DRDS.
Parâmetros
|
Parâmetro |
Descrição |
|
|
Nome do banco de dados. |
|
|
Conjunto de caracteres do banco de dados. |
|
|
Collation do banco de dados. |
|
|
Local de armazenamento do banco de dados, definido por um ou mais IDs de nó de dados (DN). Não é possível alterar esse local após a criação. Se você não especificar |
|
|
Modo de particionamento do banco de dados lógico. Valores válidos: |
|
|
Defina se os dados de tabelas únicas devem ser distribuídos entre vários DNs quando nenhuma definição explícita de partição for fornecida. Válido apenas para bancos de dados no modo AUTO. Disponível no PolarDB-X 5.4.17-16921956 ou posterior. Valores válidos: |
Não é possível alterar o modo de particionamento (MODE) após a criação do banco de dados.
Escolha um modo de particionamento
O PolarDB-X oferece dois modos de particionamento para bancos de dados lógicos. Selecione o modo adequado com base no seu fluxo de trabalho de criação de tabelas.
|
Modo AUTO |
Modo DRDS |
|
|
Padrão |
Não |
Sim (padrão quando |
|
Sintaxe de criação de tabela |
|
|
|
Tabelas únicas entre nós |
Compatível (ative com |
Incompatível |
|
Particionamento automático por chave primária |
Compatível (ative com |
Incompatível |
|
Requisito de edição |
Sem restrição à Enterprise Edition |
Exclusivo da Enterprise Edition |
|
Referência |
Para obter uma explicação detalhada sobre ambos os modos, consulte Bancos de dados nos modos AUTO e DRDS.
Comportamento de DEFAULT_SINGLE no modo AUTO
O parâmetro DEFAULT_SINGLE determina o que ocorre ao criar uma tabela em um banco de dados no modo AUTO sem definir uma partição explicitamente.
|
** |
Comportamento |
|
|
Crie uma tabela única. |
|
|
Crie uma tabela única e distribua os dados entre todos os nós de dados da instância. Consulte Common table sharding. |
Se DEFAULT_SINGLE='on' e MODE='auto' forem especificados simultaneamente, DEFAULT_SINGLE='on' terá precedência e desativará o particionamento automático por chave primária.
Exemplos
Crie um banco de dados no modo AUTO com UTF-8
CREATE DATABASE test MODE=auto default CHARACTER SET UTF8;
Query OK, 1 row affected (0.00 sec)
Crie um banco de dados em um nó de armazenamento específico
Fixe o banco de dados em um único nó de armazenamento usando LOCALITY. Os shards de tabela desse banco serão armazenados no mesmo nó, isolando os dados por localização.
CREATE DATABASE db1 MODE=drds LOCALITY='dn=polardbx-storage-0-master';
Verifique a localização após a criação:
SHOW CREATE DATABASE db1 MODE=drds;
+----------+------------------------------------------------------------------------+
| DATABASE | CREATE DATABASE |
+----------+------------------------------------------------------------------------+
| db1 | CREATE DATABASE `db1` /* LOCALITY = "dn=polardbx-storage-0-master" */ |
+----------+------------------------------------------------------------------------+
1 row in set