Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Правильная организация хранения временных данных / 4 сообщений из 4, страница 1 из 1
26.06.2014, 20:07:34
    #38681242
Random2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная организация хранения временных данных
На сайте есть поиск, результаты которого решил заносить во временную таблицу. Пока юзер на сайте был один, этого было достаточно - перед каждым поиском очищал временную таблицу (TRUNCATE), обнуляя счетчики и т.д.
Теперь изменил структуру, добавив поле USER_ID и каждый результат принадлежит теперь конкретному пользователю. Но возник такой момент. Каждый поиск занимает 500-1000 строк в таблице. Так даже если перед поиском из таблицы будут удаляться строки текущего юзера, рано или поздно Primary-счетчик достигнет предела, да и дело даже в другом - помоему это несовсем корректный подход.

Вопрос - как в таком случае правильно организовать хранение данных в этой временной таблице?

Пока на ум приходит только одна идея - добавить еще одно поле - дата поиска и перед поиском, если самая свежая запись старше 24 часов - делать TRUNCATE таблицы. Но если записей будет скажем 10000, то это уже может сказаться на времени выполнения, ведь чтобы узнать самую свежую запись, серверу нужно будет перебрать их все, что может занять немало времени. Вобщем, подскажите, кто какой выход находил в подобных ситуациях.
...
Рейтинг: 0 / 0
26.06.2014, 21:13:59
    #38681270
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная организация хранения временных данных
Random2рано или поздно Primary-счетчик достигнет предела 2634152
Random2Но если записей будет скажем 10000, то это уже может сказаться на времени выполнения, ведь чтобы узнать самую свежую запись, серверу нужно будет перебрать их всеuse the Forceindexes, Luke!
Хотя для 10к записей и индекс-то навряд ли нужен
...
Рейтинг: 0 / 0
26.06.2014, 21:30:24
    #38681280
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная организация хранения временных данных
Random2На сайте есть поиск, результаты которого решил заносить во временную таблицу. Пока юзер на сайте был один, этого было достаточно - перед каждым поиском очищал временную таблицу (TRUNCATE), обнуляя счетчики и т.д.
Теперь изменил структуру, добавив поле USER_ID и каждый результат принадлежит теперь конкретному пользователю. Но возник такой момент. Каждый поиск занимает 500-1000 строк в таблице. Так даже если перед поиском из таблицы будут удаляться строки текущего юзера, рано или поздно Primary-счетчик достигнет предела, да и дело даже в другом - помоему это несовсем корректный подход.

Вопрос - как в таком случае правильно организовать хранение данных в этой временной таблице?

Пока на ум приходит только одна идея - добавить еще одно поле - дата поиска и перед поиском, если самая свежая запись старше 24 часов - делать TRUNCATE таблицы. Но если записей будет скажем 10000, то это уже может сказаться на времени выполнения, ведь чтобы узнать самую свежую запись, серверу нужно будет перебрать их все, что может занять немало времени. Вобщем, подскажите, кто какой выход находил в подобных ситуациях.

да не совсем верно.

наводящий вопрос - зачем результат поиска хранить в базе данных???
храни его сразу на клиенте базы данных.
...
Рейтинг: 0 / 0
01.07.2014, 12:32:21
    #38684644
Random2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная организация хранения временных данных
Спасибо за ответы.

По поводу наводящих вопросов:
> зачем результат поиска хранить в базе данных???
Это связано со спецификой работы веб-приложения. Если попытаться объяснить вкратце, то есть 3 типа поиска и каждый из них пользователь может выполнять когда ему захочется. Приложение должно отображать и работать с любым из этих типов. Раньше никогда не разрабатывал такого функционала и БД к нему, поэтому решил сделать таким способом. А правильно или нет решил уточнить здесь, у знающих людей. Этот способ показался мне наиболее приемлемым, тем более что где-то когда-то встречал такие советы.

> храни его сразу на клиенте базы данных.
Несовсем понял, что имеется ввиду под "клиентом базы данных"?


tanglir, т.е. такой подход к хранению результатов поиска, как я описал вполне приемлем и используется при разработке различных приложений (когда можно результаты хранить в таблице БД).
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Правильная организация хранения временных данных / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]