Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Удаление сток при превышении 10 на пользователя. / 6 сообщений из 6, страница 1 из 1
15.10.2018, 15:09
    #39717687
Fitter2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сток при превышении 10 на пользователя.
Здравствуйте.
Я видел несколько постов на форуме посвященных ограничению строк в таблице, но там больше хотят жестко ограничить количество строк.
К примеру у нас есть tbl_user и tbl_userLog (хранит данные о заходе пользователя на сайт). Хочется раз в неделю запускать job и оставлять не более 10 последних записей на каждого пользователя ожидаемый размер таблицы tbl_userLog 2000-3000к записей.

Как оптимально быстро удалить старые записи?
...
Рейтинг: 0 / 0
15.10.2018, 15:17
    #39717691
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сток при превышении 10 на пользователя.
Оптимально - не создавать такие записи вообще. Ротация записей - обновление наиболее старой записи данными для новой записи вместо вставки новой записи в таблицу.
...
Рейтинг: 0 / 0
15.10.2018, 15:30
    #39717702
Fitter2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сток при превышении 10 на пользователя.
Я читал в постах от вас именно такое решение.
Но представим, что я упустил момент и чтобы реализовать метод "обновление старой записи" и для начала мне нужно вычистить лишние строки из базы. Варианты есть?

Спасибо.
...
Рейтинг: 0 / 0
15.10.2018, 16:10
    #39717732
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сток при превышении 10 на пользователя.
Fitter2Я читал в постах от вас именно такое решение.
Но представим, что я упустил момент и чтобы реализовать метод "обновление старой записи" и для начала мне нужно вычистить лишние строки из базы.Значит, плохо читал. Или не разобрался в том, что прочитал.

При ротации процесс занесения новых данных и процесс установления количества записей никак не связаны. То есть вообще никак. Ротация организуется на уже существующих данных, а если их меньше (в т.ч. пока нет вообще - одна пустая структура), то сначала в таблицу записывается/добавляется необходимое количество "экстремально старых" пустых записей, а затем запускается ротация. А когда ротация уже работает, в любой момент при необходимости изменить количество записей туда либо добавляется недостающее количество "экстремально старых" пустых записей, либо удаляется излишнее количество самых старых записей (если их слишком много - то небольшими порциями, не оказывающими влияние на основной процесс).
...
Рейтинг: 0 / 0
18.10.2018, 13:46
    #39719368
MAPA3OT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сток при превышении 10 на пользователя.
Fitter2Я видел несколько постов на форуме посвященных ограничению строк в таблице, но там больше хотят жестко ограничить количество строк.
К примеру у нас есть tbl_user и tbl_userLog (хранит данные о заходе пользователя на сайт). Хочется раз в неделю запускать job и оставлять не более 10 последних записей на каждого пользователя ожидаемый размер таблицы tbl_userLog 2000-3000к записей.

Как оптимально быстро удалить старые записи?

Если записей много, а так оно скорее всего и есть - Создаёте новую таблицу с нужными данными -> Удаляете старую -> Переименовываете новую.
Или если есть страшные триггеры, вьюхи, ключи жалко и т.д. - Создаёте новую таблицу с нужными данными -> Чистите старую (TRUNCATE про DELETE вообще забудьте, нет (вернее не должно быть) в SQL такой команды) -> вставляете данные из новой таблицы в старую.
...
Рейтинг: 0 / 0
19.10.2018, 12:11
    #39719847
bochkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сток при превышении 10 на пользователя.
давай структуру таблицы
напишу тепе DELETE
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Удаление сток при превышении 10 на пользователя. / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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