数据库引擎

最近更新时间:2023-09-05 11:25:15

我的收藏
默认情况下,TCHouse-C 使用自己的数据库引擎,该引擎提供可配置的 表引擎 和所有支持的 SQL 语法。此外,还可以选择使用 MySQL 数据库引擎。

延时引擎

在距最近一次访问间隔expiration_time_in_seconds时间段内,将表保存在内存中,仅适用于 *Log 引擎表。由于针对这类表的访问间隔较长,对保存大量小的 *Log 引擎表进行了优化。

MySQL 引擎

MySQL 引擎用于将远程的 MySQL 服务器中的表映射到 TCHouse-C 中,并允许对表进行 INSERT 和 SELECT 查询,以便在 TCHouse-C 与 MySQL 之间进行数据交换。
MySQL 数据库引擎会将对其的查询转换为 MySQL 语法并发送到 MySQL 服务器中,因此可执行如 SHOW TABLES 或 SHOW CREATE TABLE 之类的操作。无法对其执行 RENAME、CREATE TABLE 和 ALTER 操作

CREATE DATABASE

CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster]ENGINE = MySQL('host:port', ['database' | database], 'user', 'password')
MySQL 数据库引擎参数说明:
参数
说明
host:port
链接的 MySQL 地址
database
链接的 MySQL 数据库
user
链接的 MySQL 用户
password
链接的 MySQL 用户密码
MySQL 和 TCHouse-C 支持的类型对应说明:
MySQL
TCHouse-C
UNSIGNED TINYINT
TINYINT
UNSIGNED SMALLINT
SMALLINT
UNSIGNED INT,UNSIGNED MEDIUMINT
INT, MEDIUMINT
UNSIGNED BIGINT
BIGINT
FLOAT
DOUBLE
DATE
DATETIME,TIMESTAMP
BINARY
其他的 MySQL 数据类型将全部都转换为 字符串
同时以上的所有类型都支持 可为空(类型名称)

使用示例

在 MySQL 中创建表:
mysql> USE test;Database changed
mysql> CREATE TABLE `mysql_table` (
-> `int_id` INT NOT NULL AUTO_INCREMENT,
-> `float` FLOAT NOT NULL,
-> PRIMARY KEY (`int_id`));Query OK, 0 rows affected (0,09 sec)
mysql> insert into mysql_table (`int_id`, `float`) VALUES (1,2);Query OK, 1 row affected (0,00 sec)
mysql> select * from mysql_table;+--------+-------+| int_id | value |+--------+-------+| 1 | 2 |+--------+-------+1 row in set (0,00 sec)
在 TCHouse-C 中创建 MySQL 类型的数据库,同时与 MySQL 服务器交换数据:
CREATE DATABASE mysql_db ENGINE = MySQL('localhost:3306', 'test', 'my_user', 'user_password')
SHOW DATABASES
┌─name─────┐
│ default │
│ mysql_db │
│ system │
└──────────┘
SHOW TABLES FROM mysql_db
┌─name─────────┐
│ mysql_table │
└──────────────┘
SELECT * FROM mysql_db.mysql_table
┌─int_id─┬─value─┐
12
└────────┴───────┘
INSERT INTO mysql_db.mysql_table VALUES (3,4)
SELECT * FROM mysql_db.mysql_table
┌─int_id─┬─value─┐
12
34
└────────┴───────┘