mysql-cluster(4)——创建内存表和磁盘表

mysql-cluster系列:

  1. mysql-cluster(1)——简介
  2. mysql-cluster(2)——部署
  3. mysql-cluster(3)——集群管理和维护
  4. mysql-cluster(4)——创建内存表和磁盘表
  5. mysql-cluster(5)——jdbc
  6. mysql-cluster(6)——配置详解
  7. mysql-cluster(7)——基准测试
  8. mysql-cluster(8)——最佳实践
  9. mysql-cluster(9)——NDB和InnoDB区别
  10. mysql-cluster(10)——注意事项

本文目录:

  • 1 创建内存表
  • 2 创建磁盘表
    • 2.1 创建undo日志文件组
    • 2.2 创建数据表空间
    • 2.3 创建磁盘表
  • 3 查看表类型

在ndb上可以建立两种类型的表:

  • 内存表:所有数据(包括index)都在内存中。同时会在磁盘上保存数据,因此不用担心数据会丢失,datanode会在启动的时候把数据加载到内存。默认ndb创建的表为内存表。
  • 磁盘表:仅主键、索引字段保存在内存中,其他字段保存在磁盘文件里。

1 创建内存表

create table abc (id int) engine=ndbcluster DEFAULT CHARSET=utf8;

2 创建磁盘表

磁盘表需要创建UNDO表空间和数据表空间

2.1 创建undo日志文件组

注:MySQL只支持创建一个LOGFILE GROUP文件,只有删掉原来的才可以创建新的。

 CREATE LOGFILE GROUP lg_1
     ADD UNDOFILE 'undo_1.log'
     INITIAL_SIZE 16M
     UNDO_BUFFER_SIZE 2M
     ENGINE NDBCLUSTER;

增加日志文件到日志组:

 ALTER LOGFILE GROUP lg_1
     ADD UNDOFILE 'undo_2.log'
     INITIAL_SIZE 12M
     ENGINE NDBCLUSTER;     

2.2 创建数据表空间

 CREATE TABLESPACE ts_1
     ADD DATAFILE 'data_1.dat'
     USE LOGFILE GROUP lg_1
     INITIAL_SIZE 32M
     ENGINE NDBCLUSTER;

给表空间增加日志文件:

 ALTER TABLESPACE ts_1
     ADD DATAFILE 'data_2.dat'
     INITIAL_SIZE 48M
     ENGINE NDBCLUSTER;    

注:上面增加的日志文件和数据文件的信息保存在information_schema.FILES表里。

2.3 创建磁盘表

 CREATE TABLE dt_1 (
     member_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
     last_name VARCHAR(50) NOT NULL,
     first_name VARCHAR(50) NOT NULL,
     dob DATE NOT NULL,
     joined DATE NOT NULL,
     INDEX(last_name, first_name)
     )
     TABLESPACE ts_1 STORAGE DISK
     ENGINE NDBCLUSTER;

3 查看表类型

查看表信息:

show table status from sbtest1 where name='sbtest1';

查看表创建命令(有可能出错):

show create table sbtest1;

在management节点上使用ndb_desc工具。

Usage
ndb_desc -c connection_stringt bl_name -d db_name [options]

示例:

[[email protected] mysql]# ndb_desc -c localhost abc -d test2 -p
-- abc --
Version: 1
Fragment type: HashMapPartition
K Value: 6
Min load factor: 78
Max load factor: 80
Temporary table: no
Number of attributes: 2
Number of primary keys: 1
Length of frm data: 227
Row Checksum: 1
Row GCI: 1
SingleUserMode: 0
ForceVarPart: 1
FragmentCount: 1
ExtraRowGciBits: 0
ExtraRowAuthorBits: 0
TableStatus: Retrieved
HashMap: DEFAULT-HASHMAP-3840-1
-- Attributes --
id Int NULL AT=FIXED ST=MEMORY
$PK Bigunsigned PRIMARY KEY DISTRIBUTION KEY AT=FIXED ST=MEMORY AUTO_INCR
-- Indexes -- 
PRIMARY KEY($PK) - UniqueHashIndex
-- Per partition info -- 
Partition    Row count    Commit count    Frag fixed memory    Frag varsized memory    Extent_space    Free extent_space    
0             1            1               32768                0                        0                0                     


NDBT_ProgramExit: 0 - OK

你可能感兴趣的:(数据库,MySQL,Cluster教程)