索引失效

【 TiDB 使用环境】生产环境
【 TiDB 版本】
旧集群:v4.0.11
新集群:v6.5.0
【遇到的问题:问题现象及影响】
存在一张接近3亿条数据的表,表结构如下,现在将该表用 Dumpling + Lightning 的方式从旧集群迁移到了新集群

CREATE TABLE `analytics` (
  `day` date NOT NULL,
  `partner_org_id` varchar(60) NOT NULL,
  `partner_name` text DEFAULT NULL,
  `customer_org_id` varchar(60) NOT NULL,
  `customer_name` text DEFAULT NULL,
  `offer_code` varchar(40) NOT NULL,
  `external_id` varchar(60) NOT NULL,
  `license_id` varchar(255) NOT NULL,
  `workload` varchar(60) DEFAULT NULL
  ...(省略部分字段)
  PRIMARY KEY (`day`,`partner_org_id`,`customer_org_id`,`offer_code`,`external_id`,`license_id`) /*T![clustered_index] CLUSTERED */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
PARTITION BY RANGE (WEEKDAY(`day`))
(PARTITION `p0` VALUES LESS THAN (1),
 PARTITION `p1` VALUES LESS THAN (2),
 PARTITION `p2` VALUES LESS THAN (3),
 PARTITION `p3` VALUES LESS THAN (4),
 PARTITION `p4` VALUES LESS THAN (5),
 PARTITION `p5` VALUES LESS THAN (6),
 PARTITION `p6` VALUES LESS THAN (7));

EXPLAIN select * from analytics order by day desc limit 5;
在新集群中执行计划如下

TopN_7	5.00	root    analytics.day:desc, offset:0, count:5
└─TableReader_14	5.00	root	partition:all	data:Limit_13
  └─Limit_13	5.00	cop[tikv]		offset:0, count:5
    └─TableFullScan_12	276107194.00	cop[tikv]	table:analytics	keep order:false, desc

在旧集群中执行计划如下

TopN_24 5.00  root    analytics.day:desc, offset:0, count:5
└─PartitionUnion_28 35.00 root    
  ├─Projection_44 5.00  root    analytics.day, analytics.partner_org_id, analytics.partner_name, analytics.customer_org_id, analytics.customer_name, analytics.offer_code, analytics.external_subscription_id, analytics.subscription_start_date, analytics.subscription_end_date, analytics.is_trial, analytics.is_auto_renew, analytics.available_licenses, analytics.assigned_licenses, analytics.actively_used_licenses, analytics.capacity, analytics.trial_duration, analytics.license_status, analytics.license_id, analytics.workload, analytics.daily_actively_used_licenses, analytics.weekly_actively_used_licenses, analytics.is_sa_display, analytics.decrypted_customer_name
  │ └─IndexLookUp_43  5.00  root    limit embedded(offset:0, count:5)
  │   ├─Limit_42(Build) 5.00  cop[tikv]   offset:0, count:5
  │   │ └─IndexFullScan_40  5.00  cop[tikv] table:subscription_analytics, partition:p0, index:PRIMARY(day, partner_org_id, customer_org_id, offer_code, external_subscription_id, license_id) keep order:true, desc
  │   └─TableRowIDScan_41(Probe)  5.00  cop[tikv] table:subscription_analytics, partition:p0  keep order:false, stats:pseudo
  ├─Projection_64 5.00  root    analytics.day, analytics.partner_org_id, analytics.partner_name, analytics.customer_org_id, analytics.customer_name, analytics.offer_code, analytics.external_subscription_id, analytics.subscription_start_date, analytics.subscription_end_date, analytics.is_trial, analytics.is_auto_renew, analytics.available_licenses, analytics.assigned_licenses, analytics.actively_used_licenses, analytics.capacity, analytics.trial_duration, analytics.license_status, analytics.license_id, analytics.workload, analytics.daily_actively_used_licenses, analytics.weekly_actively_used_licenses, analytics.is_sa_display, analytics.decrypted_customer_name
  │ └─IndexLookUp_63  5.00  root    limit embedded(offset:0, count:5)
  │   ├─Limit_62(Build) 5.00  cop[tikv]   offset:0, count:5
  │   │ └─IndexFullScan_60  5.00  cop[tikv] table:subscription_analytics, partition:p1, index:PRIMARY(day, partner_org_id, customer_org_id, offer_code, external_subscription_id, license_id) keep order:true, desc
  │   └─TableRowIDScan_61(Probe)  5.00  cop[tikv] table:subscription_analytics, partition:p1  keep order:false, stats:pseudo
  ├─Projection_84 5.00  root    analytics.day, analytics.partner_org_id, analytics.partner_name, analytics.customer_org_id, analytics.customer_name, analytics.offer_code, analytics.external_subscription_id, analytics.subscription_start_date, analytics.subscription_end_date, analytics.is_trial, analytics.is_auto_renew, analytics.available_licenses, analytics.assigned_licenses, analytics.actively_used_licenses, analytics.capacity, analytics.trial_duration, analytics.license_status, analytics.license_id, analytics.workload, analytics.daily_actively_used_licenses, analytics.weekly_actively_used_licenses, analytics.is_sa_display, analytics.decrypted_customer_name
  │ └─IndexLookUp_83  5.00  root    limit embedded(offset:0, count:5)
  │   ├─Limit_82(Build) 5.00  cop[tikv]   offset:0, count:5
  │   │ └─IndexFullScan_80  5.00  cop[tikv] table:subscription_analytics, partition:p2, index:PRIMARY(day, partner_org_id, customer_org_id, offer_code, external_subscription_id, license_id) keep order:true, desc
  │   └─TableRowIDScan_81(Probe)  5.00  cop[tikv] table:subscription_analytics, partition:p2  keep order:false, stats:pseudo
  ├─Projection_104  5.00  root    analytics.day, analytics.partner_org_id, analytics.partner_name, analytics.customer_org_id, analytics.customer_name, analytics.offer_code, analytics.external_subscription_id, analytics.subscription_start_date, analytics.subscription_end_date, analytics.is_trial, analytics.is_auto_renew, analytics.available_licenses, analytics.assigned_licenses, analytics.actively_used_licenses, analytics.capacity, analytics.trial_duration, analytics.license_status, analytics.license_id, analytics.workload, analytics.daily_actively_used_licenses, analytics.weekly_actively_used_licenses, analytics.is_sa_display, analytics.decrypted_customer_name
  │ └─IndexLookUp_103 5.00  root    limit embedded(offset:0, count:5)
  │   ├─Limit_102(Build)  5.00  cop[tikv]   offset:0, count:5
  │   │ └─IndexFullScan_100 5.00  cop[tikv] table:subscription_analytics, partition:p3, index:PRIMARY(day, partner_org_id, customer_org_id, offer_code, external_subscription_id, license_id) keep order:true, desc
  │   └─TableRowIDScan_101(Probe) 5.00  cop[tikv] table:subscription_analytics, partition:p3  keep order:false, stats:pseudo
  ├─Projection_124  5.00  root    analytics.day, analytics.partner_org_id, analytics.partner_name, analytics.customer_org_id, analytics.customer_name, analytics.offer_code, analytics.external_subscription_id, analytics.subscription_start_date, analytics.subscription_end_date, analytics.is_trial, analytics.is_auto_renew, analytics.available_licenses, analytics.assigned_licenses, analytics.actively_used_licenses, analytics.capacity, analytics.trial_duration, analytics.license_status, analytics.license_id, analytics.workload, analytics.daily_actively_used_licenses, analytics.weekly_actively_used_licenses, analytics.is_sa_display, analytics.decrypted_customer_name
  │ └─IndexLookUp_123 5.00  root    limit embedded(offset:0, count:5)
  │   ├─Limit_122(Build)  5.00  cop[tikv]   offset:0, count:5
  │   │ └─IndexFullScan_120 5.00  cop[tikv] table:subscription_analytics, partition:p4, index:PRIMARY(day, partner_org_id, customer_org_id, offer_code, external_subscription_id, license_id) keep order:true, desc
  │   └─TableRowIDScan_121(Probe) 5.00  cop[tikv] table:subscription_analytics, partition:p4  keep order:false, stats:pseudo
  ├─Projection_144  5.00  root    analytics.day, analytics.partner_org_id, analytics.partner_name, analytics.customer_org_id, analytics.customer_name, analytics.offer_code, analytics.external_subscription_id, analytics.subscription_start_date, analytics.subscription_end_date, analytics.is_trial, analytics.is_auto_renew, analytics.available_licenses, analytics.assigned_licenses, analytics.actively_used_licenses, analytics.capacity, analytics.trial_duration, analytics.license_status, analytics.license_id, analytics.workload, analytics.daily_actively_used_licenses, analytics.weekly_actively_used_licenses, analytics.is_sa_display, analytics.decrypted_customer_name
  │ └─IndexLookUp_143 5.00  root    limit embedded(offset:0, count:5)
  │   ├─Limit_142(Build)  5.00  cop[tikv]   offset:0, count:5
  │   │ └─IndexFullScan_140 5.00  cop[tikv] table:subscription_analytics, partition:p5, index:PRIMARY(day, partner_org_id, customer_org_id, offer_code, external_subscription_id, license_id) keep order:true, desc
  │   └─TableRowIDScan_141(Probe) 5.00  cop[tikv] table:subscription_analytics, partition:p5  keep order:false, stats:pseudo
  └─Projection_164  5.00  root    analytics.day, analytics.partner_org_id, analytics.partner_name, analytics.customer_org_id, analytics.customer_name, analytics.offer_code, analytics.external_subscription_id, analytics.subscription_start_date, analytics.subscription_end_date, analytics.is_trial, analytics.is_auto_renew, analytics.available_licenses, analytics.assigned_licenses, analytics.actively_used_licenses, analytics.capacity, analytics.trial_duration, analytics.license_status, analytics.license_id, analytics.workload, analytics.daily_actively_used_licenses, analytics.weekly_actively_used_licenses, analytics.is_sa_display, analytics.decrypted_customer_name
    └─IndexLookUp_163 5.00  root    limit embedded(offset:0, count:5)
      ├─Limit_162(Build)  5.00  cop[tikv]   offset:0, count:5
      │ └─IndexFullScan_160 5.00  cop[tikv] table:subscription_analytics, partition:p6, index:PRIMARY(day, partner_org_id, customer_org_id, offer_code, external_subscription_id, license_id) keep order:true, desc
      └─TableRowIDScan_161(Probe) 5.00  cop[tikv] table:subscription_analytics, partition:p6  keep order:false, stats:pseudo

看起来在新的集群中索引失效了,并且进行了多次Analyze后仍然如此,请问是否有人遇到过类似的情况?以及可能的原因?感谢!

导入后删除索引再重建

4.0.11 版本还没有 非bigint列的聚促索引,所以走了索引扫描+回表方式。 6.5版本后支持字符串的聚簇索引,day又是首列 扫描全表和扫描主键索引一样, 你可以新建表改成非聚簇索引测试下
PRIMARY KEY (day,partner_org_id,customer_org_id,offer_code,external_id,license_id) NONCLUSTERED

重建索引

EXPLAIN analyze select * from analytics order by day desc limit 5;
用索引不见得快啊,你在新旧集群分别执行下看看,应该新集群更快。

你看看新集群的建的表是不是聚簇表(聚簇表主键就是行本身,所以走table scan就是primary index scan),老得是不是非聚簇表(需要扫primary index然后回表)

感觉是动态分区裁剪的问题

https://docs.pingcap.com/zh/tidb/stable/partitioned-table#动态裁剪模式

set @@session.tidb_partition_prune_mode = ‘static’

试试看这样设置一下,是否就和原来一样了。

你新集群执行计划貌似没有分区裁剪啊

如果是聚簇表,数据是按照主键排列存储的,并不存在额外索引所以你这个语句就会全表扫描。
我觉得你可以考虑额外再加个这个字段上的索引。

老集群不也没有裁剪吗,它这样建立分区是走不上分区裁剪的,tidb的分区表功能还有待增强。

where条件都没有咋裁剪

索引里有PARTITION BY RANGE (WEEKDAY(day))做分区啊

只是他新集群没走索引 :joy:

新集群不行,我实际执行了
老集群10秒内可以出结果,新集群10分钟都还在运行,所以实际上确实是没走索引

是的,新集群用了聚簇索引,但是我理解聚簇索引在遇到order by col的col出现在索引中时也应该会很快查询得到结果,我做了一些测试,用小表查询,当ORDER BY的列是聚簇索引首列时,虽然出现了全表扫描,但是estRows和limit一致,我理解仍然是隐性的使用了索引
但是当使用一致的语句在大的表查询时就扫描全表了

我进行了一些测试,感觉和分区表有关,如果不使用分区表,那虽然扫描全表,但是estRows实际和limit一致,效率也很高
这是我的新问题:聚簇索引在分区表上未生效

上传个explain analyze执行计划

显示表扫描并不是真的会扫描全表哦,上层有limit算子(类似O的COUNT STOPKEY),拿到指定行数就停了,

1 个赞

新集群查询半小时查不出来,无法输出explain analyze执行计划,老集群的explain analyze执行计划如下

TopN_24	10.00	10	root		time:133.3ms, loops:2	partnerhubanalytics.subscription_analytics.day:asc, offset:0, count:10	12.1 KB	N/A
└─PartitionUnion_28	70.00	70	root		time:133.3ms, loops:8		N/A	N/A
  ├─Projection_44	10.00	10	root		time:72.2ms, loops:2, Concurrency:OFF	partnerhubanalytics.subscription_analytics.day, partnerhubanalytics.subscription_analytics.partner_org_id, partnerhubanalytics.subscription_analytics.partner_name, partnerhubanalytics.subscription_analytics.customer_org_id, partnerhubanalytics.subscription_analytics.customer_name, partnerhubanalytics.subscription_analytics.offer_code, partnerhubanalytics.subscription_analytics.external_subscription_id, partnerhubanalytics.subscription_analytics.subscription_start_date, partnerhubanalytics.subscription_analytics.subscription_end_date, partnerhubanalytics.subscription_analytics.is_trial, partnerhubanalytics.subscription_analytics.is_auto_renew, partnerhubanalytics.subscription_analytics.available_licenses, partnerhubanalytics.subscription_analytics.assigned_licenses, partnerhubanalytics.subscription_analytics.actively_used_licenses, partnerhubanalytics.subscription_analytics.capacity, partnerhubanalytics.subscription_analytics.trial_duration, partnerhubanalytics.subscription_analytics.license_status, partnerhubanalytics.subscription_analytics.license_id, partnerhubanalytics.subscription_analytics.workload, partnerhubanalytics.subscription_analytics.daily_actively_used_licenses, partnerhubanalytics.subscription_analytics.weekly_actively_used_licenses, partnerhubanalytics.subscription_analytics.is_sa_display, partnerhubanalytics.subscription_analytics.decrypted_customer_name	12.4 KB	N/A
  │ └─IndexLookUp_43	10.00	10	root		time:72.2ms, loops:2, index_task: {total_time: 1.67ms, fetch_handle: 1.67ms, build: 2.31µs, wait: 1.83µs}, table_task: {total_time: 9.45ms, num: 1, concurrency: 4}	limit embedded(offset:0, count:10)	24.2 KB	N/A
  │   ├─Limit_42(Build)	10.00	10	cop[tikv]		time:1.67ms, loops:1, cop_task: {num: 1, max: 1.54ms, proc_keys: 32, tot_proc: 1ms, rpc_num: 1, rpc_time: 1.54ms, copr_cache: disabled}, tikv_task:{time:1ms, loops:1}	offset:0, count:10	N/A	N/A
  │   │ └─IndexFullScan_40	10.00	32	cop[tikv]	table:sa, partition:p0, index:PRIMARY(day, partner_org_id, customer_org_id, offer_code, external_subscription_id, license_id)	tikv_task:{time:1ms, loops:1}	keep order:true	N/A	N/A
  │   └─TableRowIDScan_41(Probe)	10.00	10	cop[tikv]	table:sa, partition:p0	time:1.54ms, loops:2, cop_task: {num: 5, max: 1.46ms, min: 737.4µs, avg: 1.04ms, p95: 1.46ms, max_proc_keys: 3, p95_proc_keys: 3, tot_proc: 2ms, tot_wait: 1ms, rpc_num: 5, rpc_time: 5.16ms, copr_cache: disabled}, tikv_task:{proc max:1ms, min:0s, p80:1ms, p95:1ms, iters:5, tasks:5}	keep order:false, stats:pseudo	N/A	N/A
  ├─Projection_64	10.00	10	root		time:78.4ms, loops:2, Concurrency:OFF	partnerhubanalytics.subscription_analytics.day, partnerhubanalytics.subscription_analytics.partner_org_id, partnerhubanalytics.subscription_analytics.partner_name, partnerhubanalytics.subscription_analytics.customer_org_id, partnerhubanalytics.subscription_analytics.customer_name, partnerhubanalytics.subscription_analytics.offer_code, partnerhubanalytics.subscription_analytics.external_subscription_id, partnerhubanalytics.subscription_analytics.subscription_start_date, partnerhubanalytics.subscription_analytics.subscription_end_date, partnerhubanalytics.subscription_analytics.is_trial, partnerhubanalytics.subscription_analytics.is_auto_renew, partnerhubanalytics.subscription_analytics.available_licenses, partnerhubanalytics.subscription_analytics.assigned_licenses, partnerhubanalytics.subscription_analytics.actively_used_licenses, partnerhubanalytics.subscription_analytics.capacity, partnerhubanalytics.subscription_analytics.trial_duration, partnerhubanalytics.subscription_analytics.license_status, partnerhubanalytics.subscription_analytics.license_id, partnerhubanalytics.subscription_analytics.workload, partnerhubanalytics.subscription_analytics.daily_actively_used_licenses, partnerhubanalytics.subscription_analytics.weekly_actively_used_licenses, partnerhubanalytics.subscription_analytics.is_sa_display, partnerhubanalytics.subscription_analytics.decrypted_customer_name	12.4 KB	N/A
  │ └─IndexLookUp_63	10.00	10	root		time:78.4ms, loops:2, index_task: {total_time: 2.5ms, fetch_handle: 2.5ms, build: 1.65µs, wait: 1.14µs}, table_task: {total_time: 12.3ms, num: 1, concurrency: 4}	limit embedded(offset:0, count:10)	32.5 KB	N/A
  │   ├─Limit_62(Build)	10.00	10	cop[tikv]		time:2.49ms, loops:1, cop_task: {num: 1, max: 2.5ms, proc_keys: 32, rpc_num: 1, rpc_time: 2.49ms, copr_cache: disabled}, tikv_task:{time:0s, loops:1}	offset:0, count:10	N/A	N/A
  │   │ └─IndexFullScan_60	10.00	32	cop[tikv]	table:sa, partition:p1, index:PRIMARY(day, partner_org_id, customer_org_id, offer_code, external_subscription_id, license_id)	tikv_task:{time:0s, loops:1}	keep order:true	N/A	N/A
  │   └─TableRowIDScan_61(Probe)	10.00	10	cop[tikv]	table:sa, partition:p1	time:1.62ms, loops:2, cop_task: {num: 4, max: 1.55ms, min: 659.2µs, avg: 1.06ms, p95: 1.55ms, max_proc_keys: 3, p95_proc_keys: 3, tot_proc: 3ms, rpc_num: 4, rpc_time: 4.16ms, copr_cache: disabled}, tikv_task:{proc max:1ms, min:0s, p80:1ms, p95:1ms, iters:4, tasks:4}	keep order:false, stats:pseudo	N/A	N/A
  ├─Projection_84	10.00	10	root		time:75.8ms, loops:2, Concurrency:OFF	partnerhubanalytics.subscription_analytics.day, partnerhubanalytics.subscription_analytics.partner_org_id, partnerhubanalytics.subscription_analytics.partner_name, partnerhubanalytics.subscription_analytics.customer_org_id, partnerhubanalytics.subscription_analytics.customer_name, partnerhubanalytics.subscription_analytics.offer_code, partnerhubanalytics.subscription_analytics.external_subscription_id, partnerhubanalytics.subscription_analytics.subscription_start_date, partnerhubanalytics.subscription_analytics.subscription_end_date, partnerhubanalytics.subscription_analytics.is_trial, partnerhubanalytics.subscription_analytics.is_auto_renew, partnerhubanalytics.subscription_analytics.available_licenses, partnerhubanalytics.subscription_analytics.assigned_licenses, partnerhubanalytics.subscription_analytics.actively_used_licenses, partnerhubanalytics.subscription_analytics.capacity, partnerhubanalytics.subscription_analytics.trial_duration, partnerhubanalytics.subscription_analytics.license_status, partnerhubanalytics.subscription_analytics.license_id, partnerhubanalytics.subscription_analytics.workload, partnerhubanalytics.subscription_analytics.daily_actively_used_licenses, partnerhubanalytics.subscription_analytics.weekly_actively_used_licenses, partnerhubanalytics.subscription_analytics.is_sa_display, partnerhubanalytics.subscription_analytics.decrypted_customer_name	12.4 KB	N/A
  │ └─IndexLookUp_83	10.00	10	root		time:75.8ms, loops:2, index_task: {total_time: 1.94ms, fetch_handle: 1.93ms, build: 1.75µs, wait: 1.09µs}, table_task: {total_time: 9.83ms, num: 1, concurrency: 4}	limit embedded(offset:0, count:10)	24.6 KB	N/A
  │   ├─Limit_82(Build)	10.00	10	cop[tikv]		time:1.93ms, loops:1, cop_task: {num: 1, max: 1.87ms, proc_keys: 32, tot_proc: 1ms, rpc_num: 1, rpc_time: 1.86ms, copr_cache: disabled}, tikv_task:{time:1ms, loops:1}	offset:0, count:10	N/A	N/A
  │   │ └─IndexFullScan_80	10.00	32	cop[tikv]	table:sa, partition:p2, index:PRIMARY(day, partner_org_id, customer_org_id, offer_code, external_subscription_id, license_id)	tikv_task:{time:1ms, loops:1}	keep order:true	N/A	N/A
  │   └─TableRowIDScan_81(Probe)	10.00	10	cop[tikv]	table:sa, partition:p2	time:1.27ms, loops:2, cop_task: {num: 4, max: 1.14ms, min: 566.7µs, avg: 841.9µs, p95: 1.14ms, max_proc_keys: 4, p95_proc_keys: 4, tot_proc: 1ms, tot_wait: 2ms, rpc_num: 4, rpc_time: 3.35ms, copr_cache: disabled}, tikv_task:{proc max:1ms, min:0s, p80:1ms, p95:1ms, iters:4, tasks:4}	keep order:false, stats:pseudo	N/A	N/A
  ├─Projection_104	10.00	10	root		time:80.7ms, loops:2, Concurrency:OFF	partnerhubanalytics.subscription_analytics.day, partnerhubanalytics.subscription_analytics.partner_org_id, partnerhubanalytics.subscription_analytics.partner_name, partnerhubanalytics.subscription_analytics.customer_org_id, partnerhubanalytics.subscription_analytics.customer_name, partnerhubanalytics.subscription_analytics.offer_code, partnerhubanalytics.subscription_analytics.external_subscription_id, partnerhubanalytics.subscription_analytics.subscription_start_date, partnerhubanalytics.subscription_analytics.subscription_end_date, partnerhubanalytics.subscription_analytics.is_trial, partnerhubanalytics.subscription_analytics.is_auto_renew, partnerhubanalytics.subscription_analytics.available_licenses, partnerhubanalytics.subscription_analytics.assigned_licenses, partnerhubanalytics.subscription_analytics.actively_used_licenses, partnerhubanalytics.subscription_analytics.capacity, partnerhubanalytics.subscription_analytics.trial_duration, partnerhubanalytics.subscription_analytics.license_status, partnerhubanalytics.subscription_analytics.license_id, partnerhubanalytics.subscription_analytics.workload, partnerhubanalytics.subscription_analytics.daily_actively_used_licenses, partnerhubanalytics.subscription_analytics.weekly_actively_used_licenses, partnerhubanalytics.subscription_analytics.is_sa_display, partnerhubanalytics.subscription_analytics.decrypted_customer_name	12.4 KB	N/A
  │ └─IndexLookUp_103	10.00	10	root		time:80.7ms, loops:2, index_task: {total_time: 792.9µs, fetch_handle: 790.1µs, build: 1.52µs, wait: 1.2µs}, table_task: {total_time: 5.28ms, num: 1, concurrency: 4}	limit embedded(offset:0, count:10)	22.1 KB	N/A
  │   ├─Limit_102(Build)	10.00	10	cop[tikv]		time:786.2µs, loops:1, cop_task: {num: 1, max: 755.5µs, proc_keys: 32, rpc_num: 1, rpc_time: 750.6µs, copr_cache: disabled}, tikv_task:{time:0s, loops:1}	offset:0, count:10	N/A	N/A
  │   │ └─IndexFullScan_100	10.00	32	cop[tikv]	table:sa, partition:p3, index:PRIMARY(day, partner_org_id, customer_org_id, offer_code, external_subscription_id, license_id)	tikv_task:{time:0s, loops:1}	keep order:true	N/A	N/A
  │   └─TableRowIDScan_101(Probe)	10.00	10	cop[tikv]	table:sa, partition:p3	time:1.26ms, loops:2, cop_task: {num: 5, max: 1.19ms, min: 739.9µs, avg: 906.8µs, p95: 1.19ms, max_proc_keys: 4, p95_proc_keys: 4, tot_proc: 2ms, rpc_num: 5, rpc_time: 4.49ms, copr_cache: disabled}, tikv_task:{proc max:1ms, min:0s, p80:1ms, p95:1ms, iters:5, tasks:5}	keep order:false, stats:pseudo	N/A	N/A
  ├─Projection_124	10.00	10	root		time:52.4ms, loops:2, Concurrency:OFF	partnerhubanalytics.subscription_analytics.day, partnerhubanalytics.subscription_analytics.partner_org_id, partnerhubanalytics.subscription_analytics.partner_name, partnerhubanalytics.subscription_analytics.customer_org_id, partnerhubanalytics.subscription_analytics.customer_name, partnerhubanalytics.subscription_analytics.offer_code, partnerhubanalytics.subscription_analytics.external_subscription_id, partnerhubanalytics.subscription_analytics.subscription_start_date, partnerhubanalytics.subscription_analytics.subscription_end_date, partnerhubanalytics.subscription_analytics.is_trial, partnerhubanalytics.subscription_analytics.is_auto_renew, partnerhubanalytics.subscription_analytics.available_licenses, partnerhubanalytics.subscription_analytics.assigned_licenses, partnerhubanalytics.subscription_analytics.actively_used_licenses, partnerhubanalytics.subscription_analytics.capacity, partnerhubanalytics.subscription_analytics.trial_duration, partnerhubanalytics.subscription_analytics.license_status, partnerhubanalytics.subscription_analytics.license_id, partnerhubanalytics.subscription_analytics.workload, partnerhubanalytics.subscription_analytics.daily_actively_used_licenses, partnerhubanalytics.subscription_analytics.weekly_actively_used_licenses, partnerhubanalytics.subscription_analytics.is_sa_display, partnerhubanalytics.subscription_analytics.decrypted_customer_name	12.4 KB	N/A
  │ └─IndexLookUp_123	10.00	10	root		time:52.4ms, loops:2, index_task: {total_time: 1.65ms, fetch_handle: 1.64ms, build: 2.61µs, wait: 1.15µs}, table_task: {total_time: 9.39ms, num: 1, concurrency: 4}	limit embedded(offset:0, count:10)	27.2 KB	N/A
  │   ├─Limit_122(Build)	10.00	10	cop[tikv]		time:1.64ms, loops:1, cop_task: {num: 1, max: 1.5ms, proc_keys: 32, tot_proc: 1ms, rpc_num: 1, rpc_time: 1.5ms, copr_cache: disabled}, tikv_task:{time:1ms, loops:1}	offset:0, count:10	N/A	N/A
  │   │ └─IndexFullScan_120	10.00	32	cop[tikv]	table:sa, partition:p4, index:PRIMARY(day, partner_org_id, customer_org_id, offer_code, external_subscription_id, license_id)	tikv_task:{time:1ms, loops:1}	keep order:true	N/A	N/A
  │   └─TableRowIDScan_121(Probe)	10.00	10	cop[tikv]	table:sa, partition:p4	time:1.75ms, loops:2, cop_task: {num: 5, max: 1.64ms, min: 714.4µs, avg: 1.16ms, p95: 1.64ms, max_proc_keys: 4, p95_proc_keys: 4, tot_proc: 1ms, tot_wait: 1ms, rpc_num: 5, rpc_time: 5.77ms, copr_cache: disabled}, tikv_task:{proc max:1ms, min:0s, p80:1ms, p95:1ms, iters:5, tasks:5}	keep order:false, stats:pseudo	N/A	N/A
  ├─Projection_144	10.00	10	root		time:56ms, loops:2, Concurrency:OFF	partnerhubanalytics.subscription_analytics.day, partnerhubanalytics.subscription_analytics.partner_org_id, partnerhubanalytics.subscription_analytics.partner_name, partnerhubanalytics.subscription_analytics.customer_org_id, partnerhubanalytics.subscription_analytics.customer_name, partnerhubanalytics.subscription_analytics.offer_code, partnerhubanalytics.subscription_analytics.external_subscription_id, partnerhubanalytics.subscription_analytics.subscription_start_date, partnerhubanalytics.subscription_analytics.subscription_end_date, partnerhubanalytics.subscription_analytics.is_trial, partnerhubanalytics.subscription_analytics.is_auto_renew, partnerhubanalytics.subscription_analytics.available_licenses, partnerhubanalytics.subscription_analytics.assigned_licenses, partnerhubanalytics.subscription_analytics.actively_used_licenses, partnerhubanalytics.subscription_analytics.capacity, partnerhubanalytics.subscription_analytics.trial_duration, partnerhubanalytics.subscription_analytics.license_status, partnerhubanalytics.subscription_analytics.license_id, partnerhubanalytics.subscription_analytics.workload, partnerhubanalytics.subscription_analytics.daily_actively_used_licenses, partnerhubanalytics.subscription_analytics.weekly_actively_used_licenses, partnerhubanalytics.subscription_analytics.is_sa_display, partnerhubanalytics.subscription_analytics.decrypted_customer_name	12.4 KB	N/A
  │ └─IndexLookUp_143	10.00	10	root		time:56ms, loops:2, index_task: {total_time: 1.03ms, fetch_handle: 1.02ms, build: 2.55µs, wait: 3.86µs}, table_task: {total_time: 8.22ms, num: 1, concurrency: 4}	limit embedded(offset:0, count:10)	24.1 KB	N/A
  │   ├─Limit_142(Build)	10.00	10	cop[tikv]		time:1.02ms, loops:1, cop_task: {num: 1, max: 971.7µs, proc_keys: 32, rpc_num: 1, rpc_time: 968.1µs, copr_cache: disabled}, tikv_task:{time:0s, loops:1}	offset:0, count:10	N/A	N/A
  │   │ └─IndexFullScan_140	10.00	32	cop[tikv]	table:sa, partition:p5, index:PRIMARY(day, partner_org_id, customer_org_id, offer_code, external_subscription_id, license_id)	tikv_task:{time:0s, loops:1}	keep order:true	N/A	N/A
  │   └─TableRowIDScan_141(Probe)	10.00	10	cop[tikv]	table:sa, partition:p5	time:3.18ms, loops:2, cop_task: {num: 4, max: 3.11ms, min: 580.1µs, avg: 1.38ms, p95: 3.11ms, max_proc_keys: 4, p95_proc_keys: 4, rpc_num: 4, rpc_time: 5.49ms, copr_cache: disabled}, tikv_task:{proc max:0s, min:0s, p80:0s, p95:0s, iters:4, tasks:4}	keep order:false, stats:pseudo	N/A	N/A
  └─Projection_164	10.00	10	root		time:54.7ms, loops:2, Concurrency:OFF	partnerhubanalytics.subscription_analytics.day, partnerhubanalytics.subscription_analytics.partner_org_id, partnerhubanalytics.subscription_analytics.partner_name, partnerhubanalytics.subscription_analytics.customer_org_id, partnerhubanalytics.subscription_analytics.customer_name, partnerhubanalytics.subscription_analytics.offer_code, partnerhubanalytics.subscription_analytics.external_subscription_id, partnerhubanalytics.subscription_analytics.subscription_start_date, partnerhubanalytics.subscription_analytics.subscription_end_date, partnerhubanalytics.subscription_analytics.is_trial, partnerhubanalytics.subscription_analytics.is_auto_renew, partnerhubanalytics.subscription_analytics.available_licenses, partnerhubanalytics.subscription_analytics.assigned_licenses, partnerhubanalytics.subscription_analytics.actively_used_licenses, partnerhubanalytics.subscription_analytics.capacity, partnerhubanalytics.subscription_analytics.trial_duration, partnerhubanalytics.subscription_analytics.license_status, partnerhubanalytics.subscription_analytics.license_id, partnerhubanalytics.subscription_analytics.workload, partnerhubanalytics.subscription_analytics.daily_actively_used_licenses, partnerhubanalytics.subscription_analytics.weekly_actively_used_licenses, partnerhubanalytics.subscription_analytics.is_sa_display, partnerhubanalytics.subscription_analytics.decrypted_customer_name	12.4 KB	N/A
    └─IndexLookUp_163	10.00	10	root		time:54.7ms, loops:2, index_task: {total_time: 898.2µs, fetch_handle: 895.2µs, build: 1.54µs, wait: 1.41µs}, table_task: {total_time: 5.42ms, num: 1, concurrency: 4}	limit embedded(offset:0, count:10)	22.7 KB	N/A
      ├─Limit_162(Build)	10.00	10	cop[tikv]		time:892.1µs, loops:1, cop_task: {num: 1, max: 808.6µs, proc_keys: 32, rpc_num: 1, rpc_time: 803.6µs, copr_cache: disabled}, tikv_task:{time:0s, loops:1}	offset:0, count:10	N/A	N/A
      │ └─IndexFullScan_160	10.00	32	cop[tikv]	table:sa, partition:p6, index:PRIMARY(day, partner_org_id, customer_org_id, offer_code, external_subscription_id, license_id)	tikv_task:{time:0s, loops:1}	keep order:true	N/A	N/A
      └─TableRowIDScan_161(Probe)	10.00	10	cop[tikv]	table:sa, partition:p6	time:1.11ms, loops:2, cop_task: {num: 8, max: 1.05ms, min: 747.1µs, avg: 870.7µs, p95: 1.05ms, max_proc_keys: 3, p95_proc_keys: 3, tot_proc: 1ms, rpc_num: 8, rpc_time: 6.92ms, copr_cache: disabled}, tikv_task:{proc max:1ms, min:0s, p80:0s, p95:1ms, iters:8, tasks:8}	keep order:false, stats:pseudo	N/A	N/A

感谢解答,我做了一个测试,使用如下语句建表

test_clustered - 聚簇索引,WEEKDAY分区
test_clustered_seq - 聚簇索引,按月分区
test_nonclustered - 非聚簇索引,WEEKDAY分区
test_nonclustered_seq - 非聚簇索引,按月分区

-- test.test_clustered definition

CREATE TABLE `test_clustered` (
  `day` date NOT NULL,
  `partner_org_id` varchar(60) NOT NULL,
  `partner_name` text DEFAULT NULL,
  `customer_org_id` varchar(60) NOT NULL,
  `license_id` varchar(255) NOT NULL,
  PRIMARY KEY (`day`,`partner_org_id`,`customer_org_id`,`license_id`) /*T![clustered_index] CLUSTERED */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
PARTITION BY RANGE (WEEKDAY(`day`))
(PARTITION `p0` VALUES LESS THAN (1),
 PARTITION `p1` VALUES LESS THAN (2),
 PARTITION `p2` VALUES LESS THAN (3),
 PARTITION `p3` VALUES LESS THAN (4),
 PARTITION `p4` VALUES LESS THAN (5),
 PARTITION `p5` VALUES LESS THAN (6),
 PARTITION `p6` VALUES LESS THAN (7));


-- test.test_clustered_seq definition

CREATE TABLE `test_clustered_seq` (
  `day` date NOT NULL,
  `partner_org_id` varchar(60) NOT NULL,
  `partner_name` text DEFAULT NULL,
  `customer_org_id` varchar(60) NOT NULL,
  `license_id` varchar(255) NOT NULL,
  PRIMARY KEY (`day`,`partner_org_id`,`customer_org_id`,`license_id`) /*T![clustered_index] CLUSTERED */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
PARTITION BY RANGE (TO_DAYS(`day`))
(PARTITION `p201912` VALUES LESS THAN (737790),
 PARTITION `p202001` VALUES LESS THAN (737821),
 PARTITION `p202002` VALUES LESS THAN (737850),
 PARTITION `p202003` VALUES LESS THAN (737881),
 PARTITION `p202004` VALUES LESS THAN (737911),
 PARTITION `p202005` VALUES LESS THAN (737942),
 PARTITION `p202006` VALUES LESS THAN (737972),
 PARTITION `p202007` VALUES LESS THAN (738003),
 PARTITION `p202008` VALUES LESS THAN (738034),
 PARTITION `p202009` VALUES LESS THAN (738064),
 PARTITION `p202010` VALUES LESS THAN (738095),
 PARTITION `p202011` VALUES LESS THAN (738125),
 PARTITION `p202012` VALUES LESS THAN (738156),
 PARTITION `p202101` VALUES LESS THAN (738187),
 PARTITION `p202102` VALUES LESS THAN (738215),
 PARTITION `p202103` VALUES LESS THAN (738246),
 PARTITION `p202104` VALUES LESS THAN (738276),
 PARTITION `p202105` VALUES LESS THAN (738307),
 PARTITION `p202106` VALUES LESS THAN (738337),
 PARTITION `p202107` VALUES LESS THAN (738368),
 PARTITION `p202108` VALUES LESS THAN (738399),
 PARTITION `p202109` VALUES LESS THAN (738429),
 PARTITION `p202110` VALUES LESS THAN (738460),
 PARTITION `p202111` VALUES LESS THAN (738490),
 PARTITION `p202112` VALUES LESS THAN (738521),
 PARTITION `p202201` VALUES LESS THAN (738552),
 PARTITION `p202202` VALUES LESS THAN (738580),
 PARTITION `p202203` VALUES LESS THAN (738611),
 PARTITION `p202204` VALUES LESS THAN (738641),
 PARTITION `p202205` VALUES LESS THAN (738672),
 PARTITION `p202206` VALUES LESS THAN (738702),
 PARTITION `p202207` VALUES LESS THAN (738733),
 PARTITION `p202208` VALUES LESS THAN (738764),
 PARTITION `p202209` VALUES LESS THAN (738794),
 PARTITION `p202210` VALUES LESS THAN (738825),
 PARTITION `p202211` VALUES LESS THAN (738855),
 PARTITION `p202212` VALUES LESS THAN (738886),
 PARTITION `p202301` VALUES LESS THAN (738917),
 PARTITION `p202302` VALUES LESS THAN (738945),
 PARTITION `p202303` VALUES LESS THAN (738976),
 PARTITION `p202304` VALUES LESS THAN (739006),
 PARTITION `p202305` VALUES LESS THAN (739037),
 PARTITION `p202306` VALUES LESS THAN (739067),
 PARTITION `p202307` VALUES LESS THAN (739098),
 PARTITION `p202308` VALUES LESS THAN (739129),
 PARTITION `p202309` VALUES LESS THAN (739159),
 PARTITION `p202310` VALUES LESS THAN (739190),
 PARTITION `p202311` VALUES LESS THAN (739220),
 PARTITION `p202312` VALUES LESS THAN (739251));


-- test.test_nonclustered definition

CREATE TABLE `test_nonclustered` (
  `day` date NOT NULL,
  `partner_org_id` varchar(60) NOT NULL,
  `partner_name` text DEFAULT NULL,
  `customer_org_id` varchar(60) NOT NULL,
  `license_id` varchar(255) NOT NULL,
  PRIMARY KEY (`day`,`partner_org_id`,`customer_org_id`,`license_id`) /*T![clustered_index] NONCLUSTERED */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
PARTITION BY RANGE (WEEKDAY(`day`))
(PARTITION `p0` VALUES LESS THAN (1),
 PARTITION `p1` VALUES LESS THAN (2),
 PARTITION `p2` VALUES LESS THAN (3),
 PARTITION `p3` VALUES LESS THAN (4),
 PARTITION `p4` VALUES LESS THAN (5),
 PARTITION `p5` VALUES LESS THAN (6),
 PARTITION `p6` VALUES LESS THAN (7));


-- test.test_nonclustered_seq definition

CREATE TABLE `test_nonclustered_seq` (
  `day` date NOT NULL,
  `partner_org_id` varchar(60) NOT NULL,
  `partner_name` text DEFAULT NULL,
  `customer_org_id` varchar(60) NOT NULL,
  `license_id` varchar(255) NOT NULL,
  PRIMARY KEY (`day`,`partner_org_id`,`customer_org_id`,`license_id`) /*T![clustered_index] NONCLUSTERED */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
PARTITION BY RANGE (TO_DAYS(`day`))
(PARTITION `p201912` VALUES LESS THAN (737790),
 PARTITION `p202001` VALUES LESS THAN (737821),
 PARTITION `p202002` VALUES LESS THAN (737850),
 PARTITION `p202003` VALUES LESS THAN (737881),
 PARTITION `p202004` VALUES LESS THAN (737911),
 PARTITION `p202005` VALUES LESS THAN (737942),
 PARTITION `p202006` VALUES LESS THAN (737972),
 PARTITION `p202007` VALUES LESS THAN (738003),
 PARTITION `p202008` VALUES LESS THAN (738034),
 PARTITION `p202009` VALUES LESS THAN (738064),
 PARTITION `p202010` VALUES LESS THAN (738095),
 PARTITION `p202011` VALUES LESS THAN (738125),
 PARTITION `p202012` VALUES LESS THAN (738156),
 PARTITION `p202101` VALUES LESS THAN (738187),
 PARTITION `p202102` VALUES LESS THAN (738215),
 PARTITION `p202103` VALUES LESS THAN (738246),
 PARTITION `p202104` VALUES LESS THAN (738276),
 PARTITION `p202105` VALUES LESS THAN (738307),
 PARTITION `p202106` VALUES LESS THAN (738337),
 PARTITION `p202107` VALUES LESS THAN (738368),
 PARTITION `p202108` VALUES LESS THAN (738399),
 PARTITION `p202109` VALUES LESS THAN (738429),
 PARTITION `p202110` VALUES LESS THAN (738460),
 PARTITION `p202111` VALUES LESS THAN (738490),
 PARTITION `p202112` VALUES LESS THAN (738521),
 PARTITION `p202201` VALUES LESS THAN (738552),
 PARTITION `p202202` VALUES LESS THAN (738580),
 PARTITION `p202203` VALUES LESS THAN (738611),
 PARTITION `p202204` VALUES LESS THAN (738641),
 PARTITION `p202205` VALUES LESS THAN (738672),
 PARTITION `p202206` VALUES LESS THAN (738702),
 PARTITION `p202207` VALUES LESS THAN (738733),
 PARTITION `p202208` VALUES LESS THAN (738764),
 PARTITION `p202209` VALUES LESS THAN (738794),
 PARTITION `p202210` VALUES LESS THAN (738825),
 PARTITION `p202211` VALUES LESS THAN (738855),
 PARTITION `p202212` VALUES LESS THAN (738886),
 PARTITION `p202301` VALUES LESS THAN (738917),
 PARTITION `p202302` VALUES LESS THAN (738945),
 PARTITION `p202303` VALUES LESS THAN (738976),
 PARTITION `p202304` VALUES LESS THAN (739006),
 PARTITION `p202305` VALUES LESS THAN (739037),
 PARTITION `p202306` VALUES LESS THAN (739067),
 PARTITION `p202307` VALUES LESS THAN (739098),
 PARTITION `p202308` VALUES LESS THAN (739129),
 PARTITION `p202309` VALUES LESS THAN (739159),
 PARTITION `p202310` VALUES LESS THAN (739190),
 PARTITION `p202311` VALUES LESS THAN (739220),
 PARTITION `p202312` VALUES LESS THAN (739251));

随后插入大约100000条数据,然后analyze table后分别执行下列查询

explain analyze select * from test_nonclustered_seq order by day limit 10;
TopN_7	10.00	10	root		time:6.74ms, loops:2	test.test_nonclustered_seq.day, offset:0, count:10	2.37 KB	N/A
└─TableReader_14	10.00	480	root	partition:all	time:6.7ms, loops:3, cop_task: {num: 49, max: 4.44ms, min: 241.6µs, avg: 1.4ms, p95: 3.77ms, max_proc_keys: 2161, p95_proc_keys: 2085, tot_proc: 19ms, tot_wait: 8ms, rpc_num: 49, rpc_time: 68ms, copr_cache_hit_ratio: 0.80, distsql_concurrency: 15}	data:TopN_13	9.75 KB	N/A
  └─TopN_13	10.00	480	cop[tikv]		tikv_task:{proc max:12ms, min:0s, avg: 4.33ms, p80:8ms, p95:12ms, iters:133, tasks:49}, scan_detail: {total_process_keys: 18528, total_process_keys_size: 3460454, total_keys: 18538, get_snapshot_time: 22ms, rocksdb: {key_skipped_count: 18528, block: {cache_hit_count: 85}}}	test.test_nonclustered_seq.day, offset:0, count:10	N/A	N/A
    └─TableFullScan_12	100000.00	100000	cop[tikv]	table:test_nonclustered_seq	tikv_task:{proc max:12ms, min:0s, avg: 4ms, p80:8ms, p95:12ms, iters:133, tasks:49}	keep order:false	N/A	N/A
--------------------------------------------------------------------------------------------------------
explain analyze select * from test_nonclustered order by day limit 10;
TopN_7	10.00	10	root		time:10.7ms, loops:2	test.test_nonclustered.day, offset:0, count:10	2.37 KB	N/A
└─TableReader_14	10.00	70	root	partition:all	time:10.7ms, loops:3, cop_task: {num: 7, max: 10.5ms, min: 810.6µs, avg: 2.26ms, p95: 10.5ms, max_proc_keys: 14225, p95_proc_keys: 14225, tot_proc: 9ms, rpc_num: 7, rpc_time: 15.7ms, copr_cache_hit_ratio: 0.86, distsql_concurrency: 15}	data:TopN_13	5.77 KB	N/A
  └─TopN_13	10.00	70	cop[tikv]		tikv_task:{proc max:16ms, min:12ms, avg: 15.4ms, p80:16ms, p95:16ms, iters:100, tasks:7}, scan_detail: {total_process_keys: 14225, total_process_keys_size: 2656841, total_keys: 14226, get_snapshot_time: 2.73ms, rocksdb: {key_skipped_count: 14225, block: {cache_hit_count: 47}}}	test.test_nonclustered.day, offset:0, count:10	N/A	N/A
    └─TableFullScan_12	100000.00	100000	cop[tikv]	table:test_nonclustered	tikv_task:{proc max:16ms, min:12ms, avg: 14.3ms, p80:16ms, p95:16ms, iters:100, tasks:7}	keep order:false	N/A	N/A
--------------------------------------------------------------------------------------------------------
explain analyze select * from test_clustered_seq order by day desc limit 10;
TopN_7	10.00	10	root		time:3.07s, loops:2	test.test_clustered_seq.day:desc, offset:0, count:10	9.48 KB	N/A
└─TableReader_14	10.00	100000	root	partition:all	time:3.07s, loops:100, cop_task: {num: 10025, max: 1.28ms, min: 197.8µs, avg: 294.1µs, p95: 364.1µs, max_proc_keys: 10, p95_proc_keys: 10, rpc_num: 10027, rpc_time: 2.9s, copr_cache_hit_ratio: 0.00, distsql_concurrency: 1}, backoff{regionMiss: 2ms}	data:Limit_13	3.96 KB	N/A
  └─Limit_13	10.00	100000	cop[tikv]		tikv_task:{proc max:4ms, min:0s, avg: 41.5µs, p80:0s, p95:0s, iters:10025, tasks:10025}, scan_detail: {total_process_keys: 100000, total_process_keys_size: 23877748, total_keys: 110025, get_snapshot_time: 66.1ms, rocksdb: {key_skipped_count: 109975, block: {cache_hit_count: 56992, read_count: 202, read_byte: 5.68 MB, read_time: 3.01ms}}}	offset:0, count:10	N/A	N/A
    └─TableFullScan_12	100000.00	100000	cop[tikv]	table:test_clustered_seq	tikv_task:{proc max:4ms, min:0s, avg: 41.1µs, p80:0s, p95:0s, iters:10025, tasks:10025}	keep order:false, desc	N/A	N/A
--------------------------------------------------------------------------------------------------------
explain analyze select * from test_clustered order by day limit 10;
TopN_7	10.00	10	root		time:3.08s, loops:2	test.test_clustered.day, offset:0, count:10	2.37 KB	N/A
└─TableReader_14	10.00	110000	root	partition:all	time:3.08s, loops:109, cop_task: {num: 11004, max: 16.7ms, min: 184.3µs, avg: 268.6µs, p95: 326.1µs, max_proc_keys: 10, p95_proc_keys: 10, rpc_num: 11004, rpc_time: 2.9s, copr_cache_hit_ratio: 0.00, distsql_concurrency: 1}	data:Limit_13	3.95 KB	N/A
  └─Limit_13	10.00	110000	cop[tikv]		tikv_task:{proc max:4ms, min:0s, avg: 28µs, p80:0s, p95:0s, iters:11004, tasks:11004}, scan_detail: {total_process_keys: 110000, total_process_keys_size: 26265513, total_keys: 121004, get_snapshot_time: 47.1ms, rocksdb: {key_skipped_count: 110000, block: {cache_hit_count: 36493, read_count: 53, read_byte: 1.48 MB, read_time: 889.2µs}}}	offset:0, count:10	N/A	N/A
    └─TableFullScan_12	110000.00	110000	cop[tikv]	table:test_clustered	tikv_task:{proc max:4ms, min:0s, avg: 27.6µs, p80:0s, p95:0s, iters:11004, tasks:11004}	keep order:false	N/A	N/A

整体上聚簇索引表查询较慢,同时从actRows来看,聚簇索引确实扫描了全部记录,而非直接从分区中取最大的几个,然后传递给上游算子来合并排序
那是否说明对聚簇索引而言,分区内是无序的?