Як правильно писати лог у базу даних (mySQL) - Форум про інтернет-маркетинг

Необхідно писати лог в базу даних. Один рядок лога – приблизно 400-500 байт. Приблизно 10-20 рядків на секунду. Зберігати треба приблизно 10000000 рядків.

Пробував варіант - таблиці MyISAM, видалення старих рядків конструкцією "DELETE FROM WHERE. LIMIT 10000" по крону. Все працює ОК та швидкодія хороша. Але іноді таблиці піддаються.

Спробував таблиці InnoDB - ще поки що трохи часу пройшло, але швидкодія набагато гірша. Та й якось неправильно це використовувати InnoDB для логів.

Загалом питання, як науково правильно використовувати MySQL для логів?

Дякували 2 користувачам:

А як уникнути втрати даних у текстовому файлі, при перенесенні. У базі даних можна використовувати транзкції, хоча це дуже повільно і по-моєму не вірно для таких обсягів даних. А ось як уникнути втрати даних у файловій системі?

Вважав файл на згадку для подальшого перенесення до бази. Обнулив його. Що якщо запис відбувається між подіями "вважав на згадку" та "обнулив"?

Крім того, проблемка, кожному запису взагалі потрібен id-шник. Який у цьому випадку в базі проставляється автоінкрементом. Айдишник потрібен відразу а не потім, тому що іноді по айдішнику додаткові дані треба до рядка лога дописувати приблизно через 0.5 - 2 секунди після створення рядка.

Сказали спасибі: