所以我的专业知识不在MySQL中,所以我编写了这个查询,它开始变得越来越慢,因为在5分钟左右,在EquipmentData中有100k行,在EquipmentDataStaging中有30k左右(这对我来说是非常少的数据):
CREATE TEMPORARY TABLE dataCompareTemp
SELECT eds.eds_id FROM equipmentdatastaging eds
INNER JOIN equipment e ON e.e_id_string = eds.eds_e_id_string
INNER JOIN equipmentdata ed ON e.e_id = ed.ed_e_id
AND eds.eds_ed_log_time=ed.ed_log_time
AND eds.eds_ed_unit_type=ed.ed_unit_type
AND eds.eds_ed_value = ed.ed_value
我正在使用此查询将从客户端设备提取的数据行与其数据库中的当前数据进行比较。从这里我拿出临时表并使用它的ID来做出有条件的决定。我已将e_id_string
编入索引,并且我已将e_id
编入索引,其他所有内容均未编入索引。我知道我必须比较所有这些信息看起来很愚蠢,但客户端系统正在吐出冗余数据,而我正在使用此查询来查找它。无论是SQL还是MySql Management,它都是一种不同的方法。我觉得当我在MSSQL中做这样的事情时它会更好地处理请求,但这可能是因为我设置错误。