Mysql 当一个表中有数百万条记录时,如何提高性能?

Mysql 当一个表中有数百万条记录时,如何提高性能?,mysql,database,Mysql,Database,我有两张桌子 存货 这就是我拥有数百万张唱片的地方,而且每晚都在不断增长。每个存货都分配有一个唯一的代码 它有大约50列 现在事情是这样的,我们有另一张桌子: 保存这些库存 我们将此处的唯一代码与上面的库存表匹配。如果匹配,则我们将整个记录下载到“保存这些库存”表中 从表A->记录转到表B 然而,首先搜索Inventory表需要花费大量的时间,它必须通过数百万条记录与唯一代码匹配。如果找到,则导入“保存这些库存”表 然后我们将这些项目放在仪表板上,当然是在仪表板页面上,然后它加载得更快,因为它在

我有两张桌子

存货 这就是我拥有数百万张唱片的地方,而且每晚都在不断增长。每个存货都分配有一个唯一的代码

它有大约50列

现在事情是这样的,我们有另一张桌子:

保存这些库存 我们将此处的唯一代码与上面的库存表匹配。如果匹配,则我们将整个记录下载到“保存这些库存”表中

从表A->记录转到表B

然而,首先搜索Inventory表需要花费大量的时间,它必须通过数百万条记录与唯一代码匹配。如果找到,则导入“保存这些库存”表

然后我们将这些项目放在仪表板上,当然是在仪表板页面上,然后它加载得更快,因为它在导入记录后从“保存这些库存”加载。哪一个行更少

不过,我现在正在考虑改变它的工作方式,但不确定它是否会提高性能或降低性能

这是我的方法。与其将所有内容导入“保存这些库存”表,不如匹配uniquecode并将unique分配给“保存这些库存”。然后,不用导入,而是使用内部联接来获取数据,而不用导入

但我在想,在仪表板上加载数据会花费很长时间,因为它必须为每个用户搜索数百万条记录


处理这个问题的最佳方法是什么?

我会注意到一个有50列的表有点不寻常。我们可以看看数据样本吗?听起来可能需要一些规范化。如果您对旧数据不太感兴趣,尤其是在删除旧数据的情况下,那么您还可以考虑范围分区。@halfer,与规范化无关,因为它有独立的表,并处理唯一代码与另一个表的匹配,然后导入到另一个表。我对导入感到恼火。我仍然认为您可以显示一个示例行。