所以我的专长不是 MySQL,所以我写了这个查询,它开始运行越来越慢,在 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 管理的不同方法,任何类型的帮助都将不胜感激。我觉得当我在 MSSQL 中执行此类操作时,它可以更好地处理请求,但这可能是因为我的某些设置不正确。