Задать вопрос
@rinaz22

Как хранить в БД только 5 записей?

Всем привет! Записываю статистику входа в БД. Показываю только 5 последних. Как удалить уже устарелые записи, т.е. с каждым разом 5-ая запись становится 6-ым и уже не выводится, как удалить эту 6 или более записей?
  • Вопрос задан
  • 449 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
index0h
@index0h
PHP, Golang. https://github.com/index0h
Операция удаления - очень дорогая. Вам точно нужно именно удалять? Может лучше выводить 5 последних?
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
kinglostov
@kinglostov
просто lostov
очень проста каждый раз перед insert into вам надо проверят сколько записи есть в таблице...
примеру таким методам:
$count = $db->query('SELECT COUNT(id) as `all` FROM `table`')->fetch_object();
if($count->all == 5){
 $db->query('DELETE FROM `table` WHERE id > 0 ORDER BY `id`  ASC LIMIT 1');
}

потом после if оператора тут проста insert into
$db->query("INSERT INTO");
Ответ написан
Комментировать
shabelski89
@shabelski89
engineer
Это не статистика. Не уверен что стоит записывать в БД Ваш случай,может проще в лог выводить информацию, и тем же модулем отправлять например в файл на дозапись, с счётчиком до 5 на перезапись.
Правда такой подход тоже соснителен, так как подразумевает частый мониторинг лога.
Ответ написан
Комментировать
2ord
@2ord
При помощи циклического буфера в SQL.
https://www.xarg.org/2009/09/fast-circular-buffer-...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы