MySQL大数据表性能问题

时间:2014-09-04 20:58:29

标签: mysql subquery

我面临着关于SQL性能的大问题。任何人都可以帮我解决这个问题,这是我的问题

在Product_model表格中我有 133,063,450条记录,而在product_data表格中,我有 43,44,550条记录

我写这个查询

从product_data中选择Product_Name,其中autoopartoo_id IN (     选择autoopartoo_id FROM product_model,其中make =' IVECO' &安培;&安培; model ='每天我' &安培;&安培;发动机='柴油' &安培;&安培; start_yr =' 1992' )&& classid = 216 limit 20

但是这个查询加载数据的时间太长了。

请帮我解决这个问题。

感谢。

2 个答案:

答案 0 :(得分:1)

这是您的查询,使用更标准的SQL语法编写:

Select Product_Name
from product_data
where autoopartoo_id IN (SELECT autoopartoo_id
                         FROM product_model
                         where make = 'IVECO' AND model = 'DAILY I' AND
                               engine = 'Diesel' AND start_yr = '1992'
                        ) and
      classid = 216
limit 20;

提高性能的最佳方法是使用索引。我会推荐以下两个:

product_data(classid, autoopartoo_id, Product_Name)
product_model(make, model, anging, start_yr, autoopartoo_id)

您可以采取其他步骤,但不要提及数据库,特定软件对于优化非常重要。

答案 1 :(得分:0)

您可能需要查看索引表。 我不是mysql专家,但你应该在你选择的2个表上放置一个非聚集索引 Mssql有一个性能调优器,您可以运行查询,它将为您生成索引语句。我会说mysql会有类似的东西。