2013-12-05 4 views
0

В настоящее время для ограничения количества запросов mysql каждый пользователь имеет папку с несколькими пустыми файлами, соответствующую обновлениям, сделанным в базе данных. Последняя доступная дата файла сравнивается с датой, хранящейся в основных данных. Только в том случае, если последняя дата доступа после даты в базовых данных запрашивает db.ios, сравнивающий данные memcache и ядра

Например, если пользователь отправляет запрос другу пользователю B, это записывается в db, а файл/userB/friend затрагивается, чтобы обновить дату, прошедшую последнюю текущую дату. Теперь, когда userB получает скрипт, который запрашивает db для запросов своего друга, он сначала проверяет, была ли дата последнего доступа/userB/friend после даты в основных данных и только запускает ее, если это так. Новая последняя дата доступа вместе с данными из запроса затем сохраняется в основных данных.

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

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

+0

С вашего вопроса неясно, какие отношения между mysql и данными ядра. Используете ли вы хранилище MySQL с базовыми данными? Это необычная установка, но в некоторых ситуациях она возможна. – Mundi

+0

mysql хранит все данные. Когда выполняется запрос db, он локально хранит результаты в основных данных, чтобы приложение не использовало сетевые ресурсы и ресурсы db для получения этой же информации снова и снова. – Landon

+0

Очень запутанной. Государство ясно, что вы имеете в виду ... – Mundi

ответ

0

Похоже, вы пытаетесь использовать штампы даты вместо файлов базы данных. Я не могу себе представить, что это возможная замена. Чтобы убедиться, что вы можете выполнить некоторые тесты, например. путем выполнения 100 000 запросов с обоими методами и сравнения производительности.

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

+0

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

+0

Лучший вариант - убедиться, что все обновления касаются записи в базе данных. Тогда вам просто нужно проверить базу данных. Это кажется очевидным путем ... Кроме того, вы должны были упомянуть, что хранилище sqlite находится в сети, а Core Data на устройстве ... – Mundi

Смежные вопросы