我面临着关于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
但是这个查询加载数据的时间太长了。
请帮我解决这个问题。
感谢。
答案 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会有类似的东西。