Моя озабоченность состояла в том, что я не могу сделать в базе данных, что я могу сделать в
Ява, но я не знаю, правда ли это.
Нет, это неверное предположение. Существуют действительные обстоятельства для использования базы данных для обработки данных. Например, если это требует вызова множества несопоставимых SQL-запросов, которые могут быть объединены в хранимой процедуре, вам следует выполнить обработку в хранимой процедуре и вызвать хранимый процесс из вашего Java-приложения. Таким образом вы избегаете нескольких сетевых поездок, чтобы добраться до сервера базы данных.
Я не знаю, что вы обрабатываете, хотя. Вы анализируете данные XML, хранящиеся в вашей базе данных? Тогда, возможно, вам следует использовать XQuery, и многие современные базы данных поддерживают его.
ТОЛЬКО пример: у меня есть таблица с именем Token. На данный момент оно имеет
180000 строк, но это увеличится до более чем 10 миллионов строк. я нуждаюсь
выполнить некоторую обработку, чтобы узнать, классифицировано ли слово между двумя токенами
поскольку «Собственное имя» является частью имени или нет.
Есть ли какой-нибудь индикатор в данных, который говорит, что это правильное имя? Извлечение 10 миллионов строк (в высокой степени подверженных исключению OutOfMemoryException) и последующий просмотр их не очень хорошая идея. Если есть определенные параметры для данных, которые могут быть помещены в предложение where в SQL, чтобы ограничить количество извлекаемых данных, это, по моему мнению, путь. Конечно, вам нужно будет сделать пояснения по вашему SQL, проверить правильные индексы, проверить соотношение кластеров индекса, тип индекса, все, что будет иметь значение. Теперь, если вы не можете полностью устранить все «неправильные имена», вам следует попытаться избавиться от как можно большего количества с помощью SQL, а затем обработать все остальное в вашем приложении. Я предполагаю, что это пакетное приложение, верно? Если это веб-приложение, то вам определенно нужно создать пакетное приложение, которое выполнит подготовку данных перед тем, как веб-приложения запросят их.
Надеюсь, мое объяснение имеет смысл. Пожалуйста, дайте мне знать, если у вас есть вопросы.