Как правильно писать лог в базу данных (mySQL)

12
MP
На сайте с 07.11.2014
Offline
74
#11

Вообще непонятна цель сбора этих логов. Если тупо ошибки/эксепшены - то пишите в файл и используйте стандартный logrotate и не заморачивайтесь. Если что-то сложнее с пост анализом, графиками и т.п. то мультитабличная структура будет неудобна т.к. для выборок придется делать запросы к нескольким таблицам или использовать UNION, что будет дольше, чем выбирать по одной таблице с правильными индексами. Тут либо nosql либо, как я предложил, основной лог + очередь в отдельной таблице или еще где-то.

Mik Foxi
На сайте с 02.03.2011
Offline
1076
#12
Solmyr:
А как избежать потери данных в текстовом файле, при переносе. В базе данных-то можно использовать транзкции, хотя это жутко медленно и по-моему не верно для таких объемов данных. А вот как избежать потери данных в файловой системе?

писать в файлы с разными именами. урл файла сделать в виде времени (часы, минуты), тогда писаться будет в одно, а переноситься та, в которую уже ничего не пишется.

Антибот, антиспам, веб файрвол, защита от накрутки поведенческих: https://antibot.cloud/ + партнерка, до 40$ с продажи.
Solmyr
На сайте с 10.09.2007
Offline
501
#13

Анализ конечно нужен. Иначе зачем же была бы нужна БД?

А что такое nosql - я не знаю :( Если это на самом деле без поддержки языка sql - мне такое не надо. В Википедии почитал. Интересно. Но осваивать эту хрень, ради логов - ИМХО избыточно.

L
На сайте с 07.12.2007
Offline
351
#14
Solmyr:
Но осваивать эту хрень, ради логов - ИМХО избыточно.

Я тоже в своё время не рискнула сделать проект на ЭластикСёрч. Теперь - жалею, на больших объёмах данных MySQL тормозит -> куча таблиц для нормализации, тщательная оптимизация запросов.

Быстрый полнотекстовый поиск ElasticSearch

Elasticsearch как NoSQL база данных

S
На сайте с 23.05.2004
Offline
316
#15

Логи надо в файлы писать. В базу загонять же только для анализа.

Ladycharm:
Я тоже в своё время не рискнула сделать проект на ЭластикСёрч. Теперь - жалею, на больших объёмах данных MySQL тормозит -> куча таблиц для нормализации, тщательная оптимизация запросов

А в расчет не берется, что это совершенно разные вещи ? В автомобиле тоже можно хранить картошку, но ящик для картошки для этого подходит лучше. С mysql vs elastic та же самая ситуация.

Это просто подпись.
LEOnidUKG
На сайте с 25.11.2006
Offline
1725
#16

Как вариант.

Создаётся таблица тип memory т.е. всё храниться в памяти. И пусть туда пишутся данные нонстопом.

Потом из этих данных по крону тихо мирно переносить в основную базу данных как в архив. И там уже чистить, смотреть, удалять и т.п.

Но вообще не понятно, для чего эти логи то? Они как-то анализируются или как-то считываются. Зачем они нужны то?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий