Outdated Version

You are viewing an older version of this section. View current production version.

CREATE DATABASE

Creates a database.

Syntax

CREATE DATABASE [IF NOT EXISTS] db_name [sync_options] [PARTITIONS n]
    [create_specification] ...

sync_options:
    WITH {SYNC | ASYNC} DURABILITY
	| WITH {SYNC | ASYNC} REPLICATION
	|	WITH {SYNC | ASYNC} DURABILITY {SYNC | ASYNC} REPLICATION

create_specification:
    [DEFAULT] CHARACTER SET [=] charset_name

-- "schema" is an alias for "database"
CREATE SCHEMA [IF NOT EXISTS]...

Remarks

  • db_name is the name to assign to this new MemSQL database. Do not use the _XX suffix (such as test_db_01) while naming a MemSQL database as it may cause a mismatch with the database partition ordinals (sharded databases on each leaf node).
  • WITH {SYNC | ASYNC} REPLICATION specifies whether high availability, redundancy-2 replication will be done synchronously or asynchronously. Synchronous replication from the master partitions will complete on all replicas before the commit of the transaction is acknowledged to the client application. If WITH {SYNC | ASYNC} REPLICATION is not specified, synchronous replication is used.
  • WITH {SYNC | ASYNC} DURABILITY specifies whether in-memory database updates you make using DDL and DML commands are also saved to the log on disk synchronously or asynchronously. Synchronous updates to the log on disk will complete before the commit of the transaction is acknowledged to the client application. If WITH {SYNC | ASYNC} DURABILITY is not specified, async durability is used.
  • You cannot specify WITH SYNC DURABILITY ASYNC REPLICATION.
  • PARTITIONS n allows you to set the total number of partitions that the data will be split into. By default this is controlled by the default_partitions_per_leaf variable. Note that n refers to the total number of partitions across all leaves.
  • The CREATE DATABASE ... DEFAULT CHARSET= syntax is accepted by MemSQL for compatibility with MySQL, but it has no effect. MemSQL gives all databases a default charset of utf8.
  • This command must be run on the master aggregator node (see Node Requirements for MemSQL Commands).

Examples

The following example creates a database that uses all of the default options.

CREATE DATABASE IF NOT EXISTS test;

Output:

Query OK, 1 row affected (0.18 sec)

The following example creates a database that uses sync durability and sync replication. The latter is enabled by default.

CREATE DATABASE IF NOT EXISTS test WITH SYNC DURABILITY;

Output:

Query OK, 1 row affected (3.71 sec)