Mysql 在单个分区中查询记录的速度非常慢

Mysql 在单个分区中查询记录的速度非常慢,mysql,database-partitioning,Mysql,Database Partitioning,我有一个超过20亿条记录的大表,它是分区的。每个分区包含大约5亿条记录。我最近从物理硬件转移到AWS,我使用mysqldump备份和恢复MySQL数据。我最近还创建了一个新分区p108。从旧服务器上创建的旧分区查询数据运行正常,速度非常快,几秒钟内返回数据。但是,在新创建的分区p108中查询记录的速度非常慢—几分钟 显示创建表结果 我使用以下查询创建了分区p108 ALTER TABLE termusage reorganize partition plast INTO ( pa

我有一个超过20亿条记录的大表,它是分区的。每个分区包含大约5亿条记录。我最近从物理硬件转移到AWS,我使用mysqldump备份和恢复MySQL数据。我最近还创建了一个新分区p108。从旧服务器上创建的旧分区查询数据运行正常,速度非常快,几秒钟内返回数据。但是,在新创建的分区p108中查询记录的速度非常慢—几分钟

显示创建表结果

我使用以下查询创建了分区p108

ALTER TABLE termusage reorganize partition plast 
INTO        ( partition p108 VALUES less than (662763), 
              partition plast VALUES less than maxvalue )
我可以看到文件termusagepp108.ibd,看起来很正常,数据就在那里,因为我可以从查询中得到结果

信息_schema.PARTITIONS为表显示了以下内容-这表明存在某种问题

Name    Pos Rows        Avg Data Length Method
p103    1   412249206   124 51124371456 RANGE COLUMNS
p104    2   453164890   133 60594061312 RANGE COLUMNS
p106    3   542767414   135 73562849280 RANGE COLUMNS
p107    4   587042147   129 76288098304 RANGE COLUMNS
p108    5   0           0   16384       RANGE COLUMNS
plast   6   0           0   16384       RANGE COLUMNS
如何修复分区

更新 解释好问题

# id, select_type, table, partitions, type, possible_keys, key, key_len, ref, rows, filtered, Extra
1, SIMPLE, t, p107, ref, idx_terminal,idx_feattrans,idx_file,idx_ctn,idx_pricetrans, idx_terminal, 17, const,const, 603, 100.00, Using index condition; Using temporary; Using filesort
解释错误的查询

# id, select_type, table, partitions, type, possible_keys, key, key_len, ref, rows, filtered, Extra
1, SIMPLE, t, p108, ALL, idx_terminal,idx_feattrans,idx_file,idx_ctn,idx_pricetrans, , , , 1, 100.00, Using where; Using temporary; Using filesort

对于未来的读者,通过运行ALTERTABLE解决了这个问题。。。分析分区p108


指导优化器选择读取表的最佳方式的表和索引统计信息已过时。通常使用ANALYZE来确保这些统计信息在大量数据加载或删除后得到更新。

您是否可以发布查询旧分区和新分区的可竞争查询的解释输出。请确保它是explain PARTITIONS SELECT。。。因此,输出包括显示其读取的分区的字段。添加-这表明另一个问题-我再次运行alter table check partition partition p108分区我希望从中获得一些有意义的输出然后我要尝试的下一件事是启用并再次运行长时间运行的查询。找出哪个阶段花了这么长时间。@BillKarwin ALTER TABLE Term使用情况分析分区p108花了0.33秒,并已修复该问题-两个查询都返回相同的解释结果,记录会立即返回到数据库以获得帮助
# id, select_type, table, partitions, type, possible_keys, key, key_len, ref, rows, filtered, Extra
1, SIMPLE, t, p108, ALL, idx_terminal,idx_feattrans,idx_file,idx_ctn,idx_pricetrans, , , , 1, 100.00, Using where; Using temporary; Using filesort