本文为墨天轮数据库管理服务团队原创内容,如需转载请联系小墨(VX:modb666)并注明来源。
作者:崔虎龙
墨天轮数据库管理服务MySQL技术专家
长期服务于金融游戏、物流等行业数据中心。擅长MySQL,Redis,MongoDB高可用设计和运维故障处理、备份恢复、升级迁移、性能优化
CREATE TABLE
。。。
table_option: {
AUTOEXTEND_SIZE [=] value
| COMPRESSION [=] {'ZLIB' | 'LZ4' | 'NONE'}
| CONNECTION [=] 'connect_string'
| {DATA | INDEX} DIRECTORY [=] 'absolute path to directory'
| ENGINE_ATTRIBUTE [=] 'string'
| START TRANSACTION
| STATS_AUTO_RECALC [=] {DEFAULT | 0 | 1}
| STATS_PERSISTENT [=] {DEFAULT | 0 | 1}
| STATS_SAMPLE_PAGES [=] value
。。。
}
AUTOEXTEND_SIZE
#表
CREATE TABLE t1 (c1 INT) AUTOEXTEND_SIZE = 4M;
#表空间
CREATE TABLESPACE ts1 AUTOEXTEND_SIZE = 4M;
作用:配置更大的扩展大小可以帮助避免碎片化,并促进大量数据的摄入。
STATS_PERSISTENT
CREATE TABLE `t1` (
`id` bigint auto_increment,
`Name` varchar(255),
PRIMARY KEY (`id`)
) ENGINE=InnoDB, STATS_PERSISTENT=1;
STATS_AUTO_RECALC
CREATE TABLE `t1` (
`id` bigint auto_increment,
`Name` varchar(255),
PRIMARY KEY (`id`)
) ENGINE=InnoDB, STATS_AUTO_RECALC=1;
STATS_SAMPLE_PAGES
mysql> show variables like '%innodb_stats_persistent_sample_pages%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| innodb_stats_persistent_sample_pages | 20 |
+--------------------------------------+-------+
1 row in set (0.00 sec)
CONNECTION
mysql> CREATE TABLE `t2` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) ,
KEY `name` (`name`)
) ENGINE=FEDERATED CONNECTION='mysql://root:123456@127.0.0.1:3410/db1/t1'
{DATA | INDEX} DIRECTORY
CREATE TABLE t1 (c1 INT PRIMARY KEY) DATA DIRECTORY = '/external/directory';
COMPRESSION
CREATE TABLE t1 (c1 INT) COMPRESSION="zlib";
ENGINE_ATTRIBUTE
CREATE TABLE `t1` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(50) ,
PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='ENGINE_ATTRIBUTE=ROW_FORMAT=COMPRESSED' ;
START TRANSACTION
mysql> CREATE TABLE `t2` ( `id` int DEFAULT NULL ) ENGINE=InnoDB START TRANSACTION;
Query OK, 0 rows affected (0.03 sec)
#提示COMMIT 或 ROLLBACK
mysql> SHOW TABLES;
ERROR 3977 (HY000): Only BINLOG INSERT, COMMIT and ROLLBACK statements are allowed after CREATE TABLE with START TRANSACTION statement.
mysql> COMMIT;
CREATE TABLE。。。SELECT 语句。原子DDL语句:
#5.7.44 版本执行失败
mysql> CREATE TABLE `t2` ( `id` int DEFAULT NULL ) ENGINE=InnoDB SELECT id FROM T1;
ERROR 1786 (HY000): Statement violates GTID consistency: CREATE TABLE ... SELECT.
#8.0.40版本执行成功
mysql > CREATE TABLE `t2` ( `id` int DEFAULT NULL ) ENGINE=InnoDB SELECT id FROM T1;
Query OK, 2 rows affected (0.04 sec)
Records: 2 Duplicates: 0 Warnings: 0
shell> mysqlbinlog --no-defaults --base64-output=decode-rows -v -v mysql-bin.000001

总 结
参考:
THE END

墨天轮从乐知乐享的数据库技术社区蓄势出发,全面升级,提供多类型数据库管理服务。墨天轮数据库管理服务旨在为用户构建信赖可托付的数据库环境,并为数据库厂商提供中立的生态支持。
服务官网:https://www.modb.pro/service

点击进入作者个人主页
本文分享自微信公众号 - 墨天轮(enmocs)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。