具有超过500,000,000条记录和性能问题的MySQL数据库[处于保留状态]

问题描述 投票:-1回答:1

我们有一个表,其中包含超过500,000,000条记录,我们每周每天批量加载120万条记录。该表主要用于报告,但是我的查询时间现在以分钟为单位,而不是秒。该表是innodb,在单个数据库(无群集)和分区中。我们正在使用VM,因此我们只能使用多个磁盘。我们在要查询的列上有索引。大多数是单列索引。聚集索引似乎无济于事。

query1:在tablea上选择x,y,z,table_date在date1和date2之间,其中table_date被索引,这很慢,但是会返回结果。

query2:在tablea上选择x,y,z,在tablea.n上选择tableb.n = tableb.n,其中tablea.table_date在date1和date2之间,我们在(table_date,n)上创建索引的时间为10分钟。

关于如何提高性能的任何建议?

mysql performance large-data
1个回答
0
投票

当然,您需要发布表模式和索引,但是最好的选择总是在SQL之前使用EXPLAIN。

https://dev.mysql.com/doc/refman/5.7/en/using-explain.html

EXPLAIN在table_date在date1和date2之间的表a上选择x,y,z,其中table_date被索引的速度很慢,但返回结果。

EXPLAIN在tablea上选择x,y,z,在tablea上内部联接tableb。n= tableb.n,其中tablea.table_date在date1和date2之间]

可以使用分区吗?

© www.soinside.com 2019 - 2024. All rights reserved.