Нет способа сделать это быстрее с точки зрения алгоритмической сложности. Для вычисления этого результата требуется ровно O(n * m)
операций, хотя бы потому, что у вас есть результирующий массив этого размера.
Есть несколько способов немного улучшить производительность самого кода.
Самый простой - переключиться на зубчатые массивы, как уже предлагалось в комментариях:
double[] array1 = new double [] { 1.1, 2.0, 3.0, 4.0, 5.0 };
double[] array2 = new double[] { 6.1, 7.0, 8.0};
double[][] final_array = new double[5][];
for (int i = 0; i < 5; i++)
{
final_array[i] = new double[3];
for (int j = 0; j < 3; j++)
{
final_array[i][j] = Math.Abs(array1[i] - array2[j]);
}
}
Подробнее о многомерных массивах и зубчатых массивах и их производительности можно узнать здесь:
Каковы различия между многомерным массивом и массивом массивов в C #?
Вы также можете пойти дальше и повысить производительность, используя небезопасные указатели для доступа к многомерному массиву или используя расширенные инструкции процессора (встроенные) , но ... вопрос в том: это действительно то, что вам нужно думать? Это единственное горлышко бутылки в системе с чрезвычайно высокой нагрузкой? Если это не так, просто оставьте свой код в том виде, в котором он есть, в четко читаемой и понятной форме. Говоря о производительности, O(n * m)
асимптотическая сложность отлично подходит для массивов размером 15000.
Вы могли бы хотеть посмотреть на некоторые инструменты, такие как dbdeploy (это - Java или версия .NET), и liquidbase и другие.
Хотя большинство из них, я думаю, применит наборы изменений в DB управляемым способом. Не знайте, могут ли они перепроектировать из существующих схем и выдержать сравнение.
E.
Для долгосрочного, профессионального решения необходимо следить за Schemamatic (http://versabanq.com/products/schemamatic.php). Эта ссылка показывает приложение для GUI, но все, что она делает, управляют программным обеспечением командной строки. На этой странице существует ссылка на ее сайт кода Google, где версия .NET C# Schemamatic может быть найдена. Ваше идеальное решение состояло бы в том, чтобы добавить поддержку MySQL к Schemamatic. Для SQL Server это прекрасно и делает точно, что Вы упомянули.
Теперь, для краткосрочного решения я предложил бы вывести данные, как которые Вы хотите с инструментами командной строки MySQL: mysqldump-A-c-uroot-ppassword> bkpmysql.sql
И игра с ним, хотя должно потребоваться некоторое время для достижения того, что Вы хотите. Schemamatic действительно кажется мне Вашим лучшим выбором. Сообщите мне, нужно ли Вам какое-либо разъяснение при попытке Schemamatic.
SQLyog делает это, и это здорово. Мы часто используем его в производстве.