analyze table 问题

请问下 analyze table 后,为什么show index from table列的Cardiality为0 ?

【 TiDB 使用环境】线上、测试、调研
【 TiDB 版本】
【遇到的问题】
【复现路径】做过哪些操作出现的问题
【问题现象及影响】

【附件】

请提供各个组件的 version 信息,如 cdc/tikv,可通过执行 cdc version/tikv-server --version 获取。

参考下这里

show stats_histograms 什么只显示我索引的第一列的cardinality情况呢?

是说show stats_histograms where table_name=‘xx’;只有一列吗,那应该是只有一个主键。

表没有主键,只有定义了一个非唯一索引

analyze table之后也只有一个吗

analyze table db2rp all columns 之后 也是只有一列

db2rp | CREATE TABLE db2rp (
subsystem char(6) DEFAULT NULL,
start_date char(10) DEFAULT NULL,
start_time char(8) DEFAULT NULL,
corrname char(20) DEFAULT NULL,
occurrence bigint(20) DEFAULT NULL,
db2cl2time decimal(20,6) DEFAULT NULL,
db2cl2cpu decimal(20,6) DEFAULT NULL,
db2cl2cpuse decimal(20,6) DEFAULT NULL,
dmlall bigint(20) DEFAULT NULL,
pkcl7cputime decimal(20,6) DEFAULT NULL,
pkcl7cputimese decimal(20,6) DEFAULT NULL,
pkcl7time decimal(20,6) DEFAULT NULL,
pkgcl8time decimal(20,6) DEFAULT NULL,
pkgcollid char(10) DEFAULT NULL,
pkgcorrren bigint(20) DEFAULT NULL,
pkgname char(20) DEFAULT NULL,
KEY start_date (start_date,start_time,subsystem)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin |
这个是DDL

MySQL [zm]> show stats_histograms where table_name = ‘db2rp’;
±--------±-----------±---------------±------------±---------±--------------------±---------------±-----------±-------------±------------+
| Db_name | Table_name | Partition_name | Column_name | Is_index | Update_time | Distinct_count | Null_count | Avg_col_size | Correlation |
±--------±-----------±---------------±------------±---------±--------------------±---------------±-----------±-------------±------------+
| zm | db2rp | | start_date | 1 | 2022-08-01 22:42:10 | 6529 | 0 | 0 | 0 |
±--------±-----------±---------------±------------±---------±--------------------±---------------±-----------±-------------±------------+
1 row in set (0.00 sec)

空表吗,如果是空表就只有一行。插入一行数据analyze下应该就有了。

150万行数据呢。

1 个赞

你好, 我做完如下操作有warning, 如何查看WARNING 信息呢?

MySQL [zm]> analyze table db2rp all columns;
Query OK, 0 rows affected, 1 warning (28.18 sec)

show warnings

MySQL [zm]> show warnings;
±------±-----±------------------------------------------------------------------+
| Level | Code | Message |
±------±-----±------------------------------------------------------------------+
| Note | 1105 | Analyze use auto adjusted sample rate 0.069688 for table zm.db2rp |
±------±-----±------------------------------------------------------------------+
1 row in set (0.00 sec)

这个好像没问题吧?
我show stats_histograms; 时候还是只有索引的第一列。

把索引后面几列 分别用where条件查询下 ,然后过会再看看呢

谢谢。 现在可以show出来了。

那估计可能就是默认仅加载复合索引首列信息

有可能,问个其他问题, 你们考这个认证,PTCA是不是只能看那个视频教程,能课件可以下载看吗?

没有课件可下载 CA应该还是比较好过 ,基本概念了解就行