mysql information_schema 数据库简介:
1、CHARACTER_SETS 表 CREATE TEMPORARY TABLE `CHARACTER_SETS` ( `CHARACTER_SET_NAME` varchar(32) NOT NULL DEFAULT '', 字符集的名字,例如set names utf8; `DEFAULT_COLLATE_NAME` varchar(32) NOT NULL DEFAULT '', 字符集的全称 `DESCRIPTION` varchar(60) NOT NULL DEFAULT '', 字段的描述 `MAXLEN` bigint(3) NOT NULL DEFAULT '0' 字符集的长度,例如utf8是3个字节 ) ENGINE=MEMORY DEFAULT CHARSET=utf8 里边存贮的是mysql支持的字符集。 2、COLUMNS表,储存了所有的列信息 CREATE TEMPORARY TABLE `COLUMNS` ( `TABLE_CATALOG` varchar(512) NOT NULL DEFAULT '', `TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '', 数据库名字 `TABLE_NAME` varchar(64) NOT NULL DEFAULT '', 表名 `COLUMN_NAME` varchar(64) NOT NULL DEFAULT '', 列名 `ORDINAL_POSITION` bigint(21) unsigned NOT NULL DEFAULT '0', `COLUMN_DEFAULT` longtext, `IS_NULLABLE` varchar(3) NOT NULL DEFAULT '', 是否是null `DATA_TYPE` varchar(64) NOT NULL DEFAULT '', 字段数据类型 `CHARACTER_MAXIMUM_LENGTH` bigint(21) unsigned DEFAULT NULL, `CHARACTER_OCTET_LENGTH` bigint(21) unsigned DEFAULT NULL, `NUMERIC_PRECISION` bigint(21) unsigned DEFAULT NULL, `NUMERIC_SCALE` bigint(21) unsigned DEFAULT NULL, `DATETIME_PRECISION` bigint(21) unsigned DEFAULT NULL, `CHARACTER_SET_NAME` varchar(32) DEFAULT NULL, 字段的编码 `COLLATION_NAME` varchar(32) DEFAULT NULL, 编码的全称 `COLUMN_TYPE` longtext NOT NULL, 字段具体类型 `COLUMN_KEY` varchar(3) NOT NULL DEFAULT '', `EXTRA` varchar(30) NOT NULL DEFAULT '', `PRIVILEGES` varchar(80) NOT NULL DEFAULT '', 可以对该字段进行的操作,例如select,insert,update `COLUMN_COMMENT` varchar(1024) NOT NULL DEFAULT '' 字段你的备注 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 记录了各个表里边所有字段的相关信息 3、ENGINES,数据库引擎表 CREATE TEMPORARY TABLE `ENGINES` ( `ENGINE` varchar(64) NOT NULL DEFAULT '', 数据库引擎名称 `SUPPORT` varchar(8) NOT NULL DEFAULT '', 是否支持 `COMMENT` varchar(80) NOT NULL DEFAULT '', 注释 `TRANSACTIONS` varchar(3) DEFAULT NULL, 是否支持事物 `XA` varchar(3) DEFAULT NULL, 是否支持XA分布式事物 `SAVEPOINTS` varchar(3) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=utf8 存贮了数据对引擎的支持情况 4、GLOBAL_STATUS表,存储一些全局状态,是show status结果的来源。(相对于session级别的) CREATE TEMPORARY TABLE `GLOBAL_STATUS` ( `VARIABLE_NAME` varchar(64) NOT NULL DEFAULT '', 变量名称 `VARIABLE_VALUE` varchar(2048) DEFAULT NULL 变量值 ) ENGINE=MEMORY DEFAULT CHARSET=utf8 可以查询数据库相关的一些状态。 5、GLOBAL_VARIABLES表,全局变量名称表(相对于session级别的) CREATE TEMPORARY TABLE `GLOBAL_VARIABLES` ( `VARIABLE_NAME` varchar(64) NOT NULL DEFAULT '', 变量名称 `VARIABLE_VALUE` varchar(2048) DEFAULT NULL 变量值 ) ENGINE=MEMORY DEFAULT CHARSET=utf8 存储了数据库的变量,mysql客户端的set global variabe,就是操作的此表 6、PROCESSLIST表,当前进程表,show processlist数据来源 CREATE TEMPORARY TABLE `PROCESSLIST` ( `ID` bigint(21) unsigned NOT NULL DEFAULT '0', `USER` varchar(16) NOT NULL DEFAULT '', 连接的用户名 `HOST` varchar(64) NOT NULL DEFAULT '', 主机地址和端口 `DB` varchar(64) DEFAULT NULL, 连接的数据库 `COMMAND` varchar(16) NOT NULL DEFAULT '', 执行的命令 `TIME` int(7) NOT NULL DEFAULT '0', 耗时 `STATE` varchar(64) DEFAULT NULL, 状态 `INFO` longtext, 信息 `TIME_MS` bigint(21) NOT NULL DEFAULT '0', `ROWS_SENT` bigint(21) unsigned NOT NULL DEFAULT '0', `ROWS_EXAMINED` bigint(21) unsigned NOT NULL DEFAULT '0' ) ENGINE=MyISAM DEFAULT CHARSET=utf8 7、PROFILING表,sql语句的性能profile表,例如执行了一个select语句,客户端返回的一些列信息 CREATE TEMPORARY TABLE `PROFILING` ( `QUERY_ID` int(20) NOT NULL DEFAULT '0', `SEQ` int(20) NOT NULL DEFAULT '0', `STATE` varchar(30) NOT NULL DEFAULT '', `DURATION` decimal(9,6) NOT NULL DEFAULT '0.000000', `CPU_USER` decimal(9,6) DEFAULT NULL, `CPU_SYSTEM` decimal(9,6) DEFAULT NULL, `CONTEXT_VOLUNTARY` int(20) DEFAULT NULL, `CONTEXT_INVOLUNTARY` int(20) DEFAULT NULL, `BLOCK_OPS_IN` int(20) DEFAULT NULL, `BLOCK_OPS_OUT` int(20) DEFAULT NULL, `MESSAGES_SENT` int(20) DEFAULT NULL, `MESSAGES_RECEIVED` int(20) DEFAULT NULL, `PAGE_FAULTS_MAJOR` int(20) DEFAULT NULL, `PAGE_FAULTS_MINOR` int(20) DEFAULT NULL, `SWAPS` int(20) DEFAULT NULL, `SOURCE_FUNCTION` varchar(30) DEFAULT NULL, `SOURCE_FILE` varchar(20) DEFAULT NULL, `SOURCE_LINE` int(20) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=utf8 8、SCHEMA_PRIVILEGES数据库权限表,记录了账户对数据都有什么权限 CREATE TEMPORARY TABLE `SCHEMA_PRIVILEGES` ( `GRANTEE` varchar(81) NOT NULL DEFAULT '', 用户@host `TABLE_CATALOG` varchar(512) NOT NULL DEFAULT '', `TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '', 数据库名称 `PRIVILEGE_TYPE` varchar(64) NOT NULL DEFAULT '', 权限,例如insert `IS_GRANTABLE` varchar(3) NOT NULL DEFAULT '' ) ENGINE=MEMORY DEFAULT CHARSET=utf8 9、SESSION_STATUS,SESSION_VARIABLES,同上边GLOBAL_STATUS,GLOBAL_VARIABLES,是session级别的变量 10、STATISTICS表,关于索引的统计情况。 CREATE TEMPORARY TABLE `STATISTICS` ( `TABLE_CATALOG` varchar(512) NOT NULL DEFAULT '', `TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '', 数据库 `TABLE_NAME` varchar(64) NOT NULL DEFAULT '', 表名 `NON_UNIQUE` bigint(1) NOT NULL DEFAULT '0', 是否唯一索引,0表示是,1不是 `INDEX_SCHEMA` varchar(64) NOT NULL DEFAULT '', `INDEX_NAME` varchar(64) NOT NULL DEFAULT '', 索引名字 `SEQ_IN_INDEX` bigint(2) NOT NULL DEFAULT '0', `COLUMN_NAME` varchar(64) NOT NULL DEFAULT '', 列名 `COLLATION` varchar(1) DEFAULT NULL, `CARDINALITY` bigint(21) DEFAULT NULL, `SUB_PART` bigint(3) DEFAULT NULL, `PACKED` varchar(10) DEFAULT NULL, `NULLABLE` varchar(3) NOT NULL DEFAULT '', `INDEX_TYPE` varchar(16) NOT NULL DEFAULT '', 索引类型,例如BTree `COMMENT` varchar(16) DEFAULT NULL, `INDEX_COMMENT` varchar(1024) NOT NULL DEFAULT '' ) ENGINE=MEMORY DEFAULT CHARSET=utf8 11、TABLES表,存贮了表相关的信息。 CREATE TEMPORARY TABLE `TABLES` ( `TABLE_CATALOG` varchar(512) NOT NULL DEFAULT '', `TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '', 表所在的数据库 `TABLE_NAME` varchar(64) NOT NULL DEFAULT '', 表名 `TABLE_TYPE` varchar(64) NOT NULL DEFAULT '', `ENGINE` varchar(64) DEFAULT NULL, 表引擎 `VERSION` bigint(21) unsigned DEFAULT NULL, `ROW_FORMAT` varchar(20) DEFAULT NULL, `TABLE_ROWS` bigint(21) unsigned DEFAULT NULL, `AVG_ROW_LENGTH` bigint(21) unsigned DEFAULT NULL, `DATA_LENGTH` bigint(21) unsigned DEFAULT NULL, `MAX_DATA_LENGTH` bigint(21) unsigned DEFAULT NULL, `INDEX_LENGTH` bigint(21) unsigned DEFAULT NULL, `DATA_FREE` bigint(21) unsigned DEFAULT NULL, `AUTO_INCREMENT` bigint(21) unsigned DEFAULT NULL, `CREATE_TIME` datetime DEFAULT NULL, `UPDATE_TIME` datetime DEFAULT NULL, `CHECK_TIME` datetime DEFAULT NULL, `TABLE_COLLATION` varchar(32) DEFAULT NULL, `CHECKSUM` bigint(21) unsigned DEFAULT NULL, `CREATE_OPTIONS` varchar(255) DEFAULT NULL, `TABLE_COMMENT` varchar(2048) NOT NULL DEFAULT '' ) ENGINE=MEMORY DEFAULT CHARSET=utf8
可以在不同的beta环境,用户diff数据库和表的不同,进而产生sql语句,同步数据库,
下一步会写一个关于数据库表结构同步的脚本。