TDSQL-C for MySQLの大規模テーブルストレージは、従来のローカルディスクを使用したデータベースと比較して、以下の優位性があります。
TDSQL-C for MySQLの1つのテーブルは、物理的にN台のストレージサーバーに分散して保存されます。このため、1つのテーブルに対するI/Oは複数のストレージディスクに分散され、I/O読み取りの全体スループット性能は集中型のローカルディスクデータベースよりもはるかに優れています。
データベースとテーブルの作成数に制限はありますか。
TDSQL-C for MySQLでは、作成できるデータベースの数やテーブルの数に制限はありません。理論上、十分なストレージ容量さえあれば、無制限にデータベースとテーブルを作成できます。ストレージ容量上限の確認方法については、製品仕様を参照してください。 データベースとテーブルの作成方法
TDSQL-C for MySQLは、データベースやテーブルを作成する複数の方法をサポートしています。
端末にログインしてSQLコマンドを実行し、データベースやテーブルを作成します。端末へのログイン方法についてはクラスタへの接続を参照してください。
データベースを作成するSQL文は create database で、コマンドは次のとおりです: create database <データベース名>;
テーブルを作成するSQL文は create table で、コマンドは:
create table <テーブル名> (<テーブル定義オプション>)<テーブルオプション><パーティションオプション>、
<テーブル定義オプション>の形式は:列名1 型1 [,…] 列名n 型n
例:テーブルを作成するデータベース test_db を選択し、データテーブル tb_emp1 を作成します。
mysql> USE test_db;
Database changed
mysql> CREATE TABLE tb_emp1
-> (
-> id INT(11),
-> name VARCHAR(25),
-> deptId INT(11),
-> salary FLOAT
-> );
Query OK, 0 rows affected (0.37 sec)
同じTDSQL-C for MySQLデータベース内でデータ量の多いテーブル(例:テーブルA全体をテーブルBにコピーする)を複製する場合、どの方法が適切でしょうか。
次のSQL文を直接コピーして使用できます:
create table B as select * from A
TDSQL-C for MySQLはテーブルパーティションをサポートしていますでしょうか。
サポートされています。大規模テーブルのトリミングによってクエリアクセスするデータ量を制御し、かつそのトリミングをビジネスコードに対して透過的(ビジネスコードの変更不要)にしたいシナリオでは、パーティションテーブルの使用が適しています。
大規模テーブル構造を迅速に変更する方法
TDSQL-C for MySQLはインスタントDDL機能をサポートしており、インスタントアルゴリズムによりデータコピーを回避することで、大規模テーブルの列変更を高速化します。データをコピーせず、ディスクスペースやディスクI/Oを占有しないため、ビジネスピーク時でも秒レベルの変更が可能です。詳細な機能説明についてはインスタントDDL機能の紹介をご参照ください。