|
|
|
Удаление сток при превышении 10 на пользователя.
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Я видел несколько постов на форуме посвященных ограничению строк в таблице, но там больше хотят жестко ограничить количество строк. К примеру у нас есть tbl_user и tbl_userLog (хранит данные о заходе пользователя на сайт). Хочется раз в неделю запускать job и оставлять не более 10 последних записей на каждого пользователя ожидаемый размер таблицы tbl_userLog 2000-3000к записей. Как оптимально быстро удалить старые записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 15:09 |
|
||
|
Удаление сток при превышении 10 на пользователя.
|
|||
|---|---|---|---|
|
#18+
Оптимально - не создавать такие записи вообще. Ротация записей - обновление наиболее старой записи данными для новой записи вместо вставки новой записи в таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 15:17 |
|
||
|
Удаление сток при превышении 10 на пользователя.
|
|||
|---|---|---|---|
|
#18+
Я читал в постах от вас именно такое решение. Но представим, что я упустил момент и чтобы реализовать метод "обновление старой записи" и для начала мне нужно вычистить лишние строки из базы. Варианты есть? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 15:30 |
|
||
|
Удаление сток при превышении 10 на пользователя.
|
|||
|---|---|---|---|
|
#18+
Fitter2Я читал в постах от вас именно такое решение. Но представим, что я упустил момент и чтобы реализовать метод "обновление старой записи" и для начала мне нужно вычистить лишние строки из базы.Значит, плохо читал. Или не разобрался в том, что прочитал. При ротации процесс занесения новых данных и процесс установления количества записей никак не связаны. То есть вообще никак. Ротация организуется на уже существующих данных, а если их меньше (в т.ч. пока нет вообще - одна пустая структура), то сначала в таблицу записывается/добавляется необходимое количество "экстремально старых" пустых записей, а затем запускается ротация. А когда ротация уже работает, в любой момент при необходимости изменить количество записей туда либо добавляется недостающее количество "экстремально старых" пустых записей, либо удаляется излишнее количество самых старых записей (если их слишком много - то небольшими порциями, не оказывающими влияние на основной процесс). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2018, 16:10 |
|
||
|
Удаление сток при превышении 10 на пользователя.
|
|||
|---|---|---|---|
|
#18+
Fitter2Я видел несколько постов на форуме посвященных ограничению строк в таблице, но там больше хотят жестко ограничить количество строк. К примеру у нас есть tbl_user и tbl_userLog (хранит данные о заходе пользователя на сайт). Хочется раз в неделю запускать job и оставлять не более 10 последних записей на каждого пользователя ожидаемый размер таблицы tbl_userLog 2000-3000к записей. Как оптимально быстро удалить старые записи? Если записей много, а так оно скорее всего и есть - Создаёте новую таблицу с нужными данными -> Удаляете старую -> Переименовываете новую. Или если есть страшные триггеры, вьюхи, ключи жалко и т.д. - Создаёте новую таблицу с нужными данными -> Чистите старую (TRUNCATE про DELETE вообще забудьте, нет (вернее не должно быть) в SQL такой команды) -> вставляете данные из новой таблицы в старую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2018, 13:46 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=45&tid=1829533]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
| others: | 11ms |
| total: | 130ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...