Как да напиша лог в базата данни (mySQL) - Интернет маркетинг форум

Трябва да напишете лог в базата данни. Един ред от журнал е около 400-500 байта. Приблизително 10-20 реда в секунда. Трябва да съхраните приблизително 10 000 000 реда.

Пробвах опцията - таблици MyISAM, изтриване на стари редове с конструкцията "DELETE FROM WHERE . LIMIT 10000" от cron. Всичко работи добре и производителността е добра. Но понякога масите са заключени.

Опитах InnoDB таблици - все още е минало малко време, но производителността е много по-лоша. Да, и някак си е грешно да се използва InnoDB за регистрационни файлове.

Като цяло въпросът е как научно правилно да използваме MySQL за логове?

2 потребители казаха благодаря:

И как да избегнете загуба на данни в текстов файл по време на прехвърляне. Можете да използвате транзакции в базата данни, въпреки че това е ужасно бавно и според мен не е вярно за такива количества данни. Но как да избегнем загуба на данни във файловата система?

Прочетете файла в паметта за по-нататъшно прехвърляне към базата данни. Анулира го. Какво става, ако записът се случи между събитията „четене в паметта“ и „нула“?

Освен това проблемът е, че всеки запис всъщност се нуждае от id-shnik. Което в този случай се прикрепя към базата данни чрез автоматично нарастване. Идентификаторът е необходим незабавно, а не по-късно, тъй като понякога е необходимо допълнителни данни да бъдат добавени към реда на журнала чрез идентификатора, приблизително 0,5 - 2 секунди след създаването на реда.

Благодаря ти: