Некоторое время назад я работал над API, чтобы хранить записи, хранящиеся в двух разных системах, синхронно c друг с другом. Он работал нормально, но столкнулся с проблемой с новой таблицей, которую я привожу в syn c, которая имеет большое количество записей. Ниже находится базовое c помещение.
table1 и table2 - это фрагмент структур, отражающих данные, которые я пытаюсь сохранить в синхронизации c. Это прекрасно работает около 20 000 записей. Но сейчас я работаю с 200 000, и это не очень эффективно, так как я эффективно пробегаю по каждой строке потенциально 200 000 раз, что приводит к миллиардам циклов. Есть ли более эффективный способ go сделать это?
for _, item1 = range table1 {
for _, item2 = range table2 {
if item1.id == item2.id {
itemsAreEqual = reflect.DeepEqual(item1, item2)
if !itemsAreEqual {
//Update Stuff
}
}
}
}