分类: MySQL
MySQL8.0.31统计信息更新INFORMATION_SCHEMA

导入完数据以后查看最大的表 top 10:

root@kgoatestdb 16:55:51 [(none)]>select table_schema,table_name,table_rows from INFORMATION_SCHEMA.tables order by table_rows desc limit 10;
+--------------+----------------------------+------------+
| table_schema | table_name                 | table_rows |
+--------------+----------------------------+------------+
| oadb         | schedulerunlog             |    2158070 |
| oadb         | hrmonlinecount             |    1321563 |
| oadb         | hrmsysmaintenancelog       |     538537 |
| oadb         | workflow_trackdetail       |     353748 |
| oadb         | workflow_node_fix_flowtime |     226093 |
| oadb         | htmllabelinfo              |     177120 |
| oadb         | workflow_requestflowinfo   |     160161 |
| oadb         | workflow_approvelog        |     156978 |
| oadb         | docshare                   |     142524 |
| oadb         | workflow_track             |     141102 |
+--------------+----------------------------+------------+
10 rows in set, 16 warnings (1.02 sec)

看看其中任意一个大小:

root@kgoatestdb 16:56:22 [(none)]>SELECT count(*) from oadb.hrmsysmaintenancelog
    -> ;
+----------+
| count(*) |
+----------+
|   584943 |
+----------+
1 row in set (0.51 sec)

实际数量和INFORMATION_SCHEMA.tables是有差异的,查看选项:

root@kgoatestdb 16:41:20 [oadb]>show variables like '%innodb_stats_persistent%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| innodb_stats_persistent              | ON    |
| innodb_stats_persistent_sample_pages | 20    |
+--------------------------------------+-------+
2 rows in set (0.00 sec)

采样统计信息可以有两种选择:
持久化: 默认是持久化,也就是存磁盘。
非持久化.

innodb_stats_on_metadata: 是否每次都重新计算统计信息(配合非持久化使用),默认off;
innodb_stats_auto_recalc: 插入数据量超过原表20%的时候更新统计信息,默认on。
MySQK什么时候更新统计信息:

手动运行触发语句如analyze table xx的时候;
如果innodb_stats_auto_recalc为on: 插入数据量超过原表20%的时候更新统计信息;
如果innodb_stats_on_metadata为on: 每次查询schema.table表的是更新统计信息(一般不开启,性能太差)。

手工触发下top 10的表:

analyze table oadb.schedulerunlog  ;
analyze table oadb.hrmonlinecount  ;
analyze table oadb.hrmsysmaintenancelog ;
analyze table oadb.workflow_trackdetail     ;
analyze table oadb.workflow_node_fix_flowtime ;
analyze table oadb.htmllabelinfo  ;
analyze table oadb.workflow_requestflowinfo  ;
analyze table oadb.workflow_approvelog ;
analyze table oadb.docshare ;
analyze table oadb.workflow_track ;

查看information_schema.tables表信息:

root@kgoatestdb 17:12:26 [(none)]>show create table information_schema.tables\G;
*************************** 1. row ***************************
       Table: TABLES
Create Table: 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(10) 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
1 row in set (0.00 sec)

information_schema.tables表引擎是MEMORY比之前的视图好多了·
再次查看数据变化了:

root@kgoatestdb 17:14:01 [(none)]>select table_schema,table_name,table_rows from INFORMATION_SCHEMA.tables order by table_rows desc limit 10;
+--------------+----------------------------+------------+
| table_schema | table_name                 | table_rows |
+--------------+----------------------------+------------+
| oadb         | schedulerunlog             |    2157134 |
| oadb         | hrmonlinecount             |    1321563 |
| oadb         | hrmsysmaintenancelog       |     579516 |
| oadb         | workflow_trackdetail       |     381871 |
| oadb         | workflow_node_fix_flowtime |     226093 |
| oadb         | htmllabelinfo              |     165282 |
| oadb         | workflow_requestflowinfo   |     163376 |
| oadb         | workflow_track             |     153792 |
| oadb         | workflow_approvelog        |     150641 |
| oadb         | docshare                   |     142784 |
+--------------+----------------------------+------------+
10 rows in set, 16 warnings (0.95 sec)


相关博文:

发表新评论