MySQL FEDERATED引擎创建跨库同步表

###MySQL FEDERATED引擎创建跨库同步表 该功能类似于Oracle的DBLink,可以跨库、跨服务器查询和关联。首先检查是否支持FEDERATED引擎: ``` show engines ``` | engine | support | | ------------ | ------------ | | PERFORMANCE_SCHEMA | YES | | MyISAM | YES | | MRG_MYISAM | YES | | MEMORY | YES | | InnoDB | DEFAULT | | FEDERATED | YES | | CSV | YES | | BLACKHOLE | YES | | ARCHIVE | YES | 如果提示FEDERATED的SUPPORT为NO,说明MySQL安装了Federated引擎,但是没有启用,此时需要修改`mysql.ini` | `mysql.cnf` 文件,在最后添加一行`FEDERATED`,重启MySQL即可。 如果上述列表压根没有出现FEDERATE条目,说明MySQL服务器版本太低或者安装时不完全,请做好备份重新安装最新的版本。 接下来在需要的库中创建镜像表,表结构需要跟原始表完全一致,示例代码如下 ``` CREATE TABLE `weight`( `Id` int(11) NOT NULL AUTO_INCREMENT, `weight` float(4,1) DEFAULT '0.0', `createat` datetime DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=FEDERATED CONNECTION='mysql://username:password@host:port/db_name/table_name' ```

ISSUE: MySQL空间量计算

MySQL所有数据库空间量计算: ``` select concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size from information_schema.tables; ``` 按照数据库分组计算: ``` select TABLE_NAME, concat(truncate(data_length/1024/1024,2),' MB') as data_size, concat(truncate(index_length/1024/1024,2),' MB') as index_size from information_schema.tables where TABLE_SCHEMA = 'TestDB' group by TABLE_NAME order by data_length desc; ```

丁丁生于 1987.07.01 ,30岁,英文ID:newflydd

  • 现居住地 江苏 ● 泰州 ● 姜堰
  • 创建了 Jblog 开源博客系统
  • 坚持十余年的 独立博客 作者
  • 大学本科毕业后就职于 中国电信江苏泰州分公司,前两年从事Oracle数据库DBA工作,两年后公司精简技术人员,被安排到农村担任支局长(其本质是搞销售),于2016年因志向不合从国企辞职,在小城镇找了一份程序员的工作。
  • Git OSChina 上积极参与开源社区