Это во многом концептуальный вопрос, поэтому у меня нет кода для показа. Я постараюсь объяснить это как можно лучше. Я пишу программу, которая должна найти общие последовательности чисел, найденных в большой таблице случайных комбинаций.Каков наиболее эффективный способ сравнения строк в таблице MySQL с Java
Так, например, взять эти данные:
1 5 3 9 6 3 8 8 3 3
6 7 5 5 5 4 9 2 0 1
6 4 4 3 7 8 3 9 5 6
2 4 2 4 5 5 3 4 7 7
1 5 6 3 4 9 9 3 3 2
0 2 7 9 4 5 3 9 8 3
Эти случайные combinatinos чисел 1-9. Для каждой трехзначной (или более) последовательности, найденной более одного раза, мне нужно поместить ее в другую базу данных. Итак, первая строка содержит «5 3 9», а 6-я строка также содержит «5 3 9». Я бы поместил эту последовательность в отдельную таблицу с количеством раз, когда она была найдена.
Я все еще разрабатываю алгоритм для фактического выполнения этих сравнений, но я думаю, что мне нужно будет начать с «1 5 3», сравните это с каждым трёхтомным трио, а затем перейдите к «5 3 9 ", затем" 3 9 6 "и т. Д.
МОЯ ОСНОВНАЯ ПРОБЛЕМА RIGHT NOW - это то, что я не знаю, как это сделать, если эти числа хранятся в базе данных. В моей таблице базы данных есть 11 столбцов. Один столбец для каждого отдельного номера и один столбец для 10-значной последовательности в целом. Столбцы называются Sequence, 1stNum, 2ndNum, 3rdNum ... 10thNum.
Визуальные: первая строка в моей базе данных для данных выше будет это:
| 1 5 3 9 6 3 8 8 3 3 | 1 | 5 | 3 | 9 | 6 | 3 | 8 | 8 | 3 | 3 |
(«|» разделяй столбцы)
Как сделать сравнение эффективно с Java? Я повторяю каждую строку в таблице много раз. Однажды для начальной последовательности, которую нужно сравнить, и для каждой из этих последовательностей я просматриваю каждую строку. В основном цикл for в цикле for. Это похоже на то, что он собирается взять тонну запросов и может занять вечность, если таблица станет массивной (что будет).
Является ли это более эффективным с точки зрения вычислений, если я итерации через базу данных с помощью запросов или я удаляю базу данных и перебираю файл?
Я попытался объяснить это как можно лучше, это очень запутанный процесс для меня. Я могу прояснить все, что вам нужно. Мне просто нужно руководствоваться тем, каков наилучший способ действий для этого.
** Почему ** вы это делаете? Не можете ли вы прочитать все содержимое в списке и отсортировать его в памяти? –
Его часть личного проекта программирования, с которым я играю.Детали являются неудобными, но я попытался объяснить, установив его как самостоятельную проблему. Я вообще не разбираюсь в этом. –
@ ElliottFrisch Порядок номеров очень важен, поэтому сортировка приведет к поражению цели. Если ты это имеешь в виду. – user3521471