2012-07-02 5 views
-2

В настоящее время я пытаюсь оптимизировать свою программу. У меня есть большая база данных, которая состоит из данных, которые имеют временную отметку. Данные, которые мне нужно обновить, это только данные за текущий день, поэтому я не хочу искать всю базу данных более одного раза, чтобы найти только записи сегодняшнего дня. Есть ли способ выбрать что-то, а затем использовать его позже в нескольких разных командах (MERGE INTO)?Выберите часть таблицы для последующего использования

Я хочу выбрать все данные сегодня, а затем запустить цикл while (в java) для каждой отдельной записи данных на сегодняшний день, обновляя их все. Так возможно ли это? Или мне нужно пройти всю базу данных для каждой итерации цикла while?

ответ

1

Используйте надлежащую технологию кэширования данных, например memcached, чтобы минимизировать попадания в базу данных для сильночитаемых, медленно изменяющихся данных.

+0

Спасибо! Кажется, это именно то, что я искал :) – Chikilah

+0

Добро пожаловать. Я использовал «memcached» с отличными результатами. Легко настраивается, хорошо масштабируется ... хороший материал. – bluevector

2

Если вы оптимизируете свою программу, и ваша база данных имеет временную метку. Тогда первое, что вы можете сделать, это создать индекс для поля timestamps. Это уменьшит время выполнения запроса, потому что ваши критерии фильтра связаны с этим полем отметки времени.

+0

Моя база данных на самом деле не временная. Я помещаю данные, в которых есть идентификатор и временная метка, и некоторые данные, связанные с этой меткой времени. Поэтому вначале база данных имеет ничего, кроме старых дат, пока я не стану вводить новые даты. – Chikilah