В какой БД хранить данные для ведения логов из php?

dandandan

Мой дом здесь!
Регистрация
7 Авг 2008
Сообщения
1.036
Реакции
293
Возникла потребность постоянно вести логирование данных из php.
Структура таблички такая:
время | параметр 1 | параметр 2 | параметр 3 ... | параметр x

По возможности нужны индексы по нескольким полям.

Количество INSERT минимально. Количество UPDATE = количество SELECT минус INSERT, т.е. считаем одинаковым.

Запросы идут многопоточно на селект и апдейт.

Брать mysql базу не хочу, т.к. будет приличная нагрузка а сервер.

Хотел было остановиться на SQLite, но остановило:

Для просмотра ссылки Войди или Зарегистрируйся

Изначально SQlite работал по принципу «многие читают — один пишет».
Либо одно подключение и все запросы через него, либо исходить из возможного таймаута и предусмотреть повтор выполнения SQL.

И есть некое решение.
Есть и еще одна возможность: не так давно появился новый вид лога SQlite: Write Ahead Log, WAL.
Если включить для БД именно этот режим лога, то несколько подключений смогут одновременно модифицировать БД.
Но в этом режиме БД уже занимает несколько файлов.

и вот еще ниже коммент нашел:
На самом деле SQLite3 и так позволяет нормальный параллельный доступ из разных процессов и из разных потоков к одним и тем же БД, не требуется ничего наворачивать сверху, SQLite сам разбирается со всеми блокировками, кэшами и т.п. В частности, это очень активно используется в Eserv (отечественный почтовый и веб сервер), начиная с 4й версии (индексы писем и пр.).

Не понятно кому верить. Какие еще альтернативы SQLite можете посоветовать?
Нужно, чтобы это работало на винде и на линукс хостингах.

p.s. Работал только с mysql.
 
На самом деле вариантов то и нет. Из клиент-серверных MySQL, MSSQL, PostgreSQL, MaxDB, Oracle - причем MySQL самая безобидная по требованиям к ресурсам.
А из встраиваемых только SQLite и развивается по сути, все остальные проекты в полуброшенном состоянии.
 
так если вы создадите отдельный сервер с инстансом мускула и будете делать отложеную (queue) запись, всё должно нормально получиться. а вообще стоит задуматься над чем-то вроде Для просмотра ссылки Войди или Зарегистрируйся
тогда вам будет всё равно, что где, куда и как, сегодня мускул, завтра mssql, послезавтра файловая система.
 
К сожалению, Для просмотра ссылки Войди или Зарегистрируйся не подходит. Логи он ведет отлично. Но мне надо перезаписывать постоянно данные и хранить только последние актуальные. Писать парсер под эти логи не вижу смысла. Т.е. реально нужна база, но желательно на файлах для меньшей нагрузки на процессор.
 
варианты nosql рассматриваются ? для логов это как по мне отличный вариант
 
Может быть вас отправил не по тому пути, написав слово ЛОГ. Для меня это логи, но работать надо с ними как с обыкновенными данными. Информация по 1 строке никогда не дублируется, а только обновляется каким-то новым значением.

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

Если есть какая-то либа для SQLite, которая бы автоматизировала автоматическую запись в случае занятости базы - тоже интересно. Пока я только собираю информацию для выбора источника хранения данных.
 
Назад
Сверху