Должен ли я использовать MySQL для ведения журналов, или просто дамп в текстовый файл - PullRequest
5 голосов
/ 12 ноября 2010

Я создаю сайт, который будет выполнять много поисков, и мне нужно регистрировать данные о каждом поиске, который будет сделан для последующего анализа.

Я ожидаю, что в конечном итоге нагрузка будет распределена между несколькими серверами, затем каждыймесяц я буду загружать и импортировать все журналы в одну базу данных mysql на моем конце для анализа.

В данный момент я смотрю на настройку каждого сервера как «главного» mysql, который будет обновлять ведомое в режиме реального времени.Сервер анализа и по сути также выступать в качестве резервной копии.

Однако я стремлюсь к эффективности.Очевидно, что преимущества репликации mysql заключаются в том, что у меня всегда есть централизованно доступные журналы, и мне не нужно каждый месяц импортировать и сбрасывать файлы журналов на каждом сервере.

Насколько эффективнее было бы входить в открытый текстовый файли просто сбрасывать этот файл журнала каждый месяц и импортировать в MySQL централизованно?Разве дамп открытого текста намного эффективнее / быстрее, чем mysql?

Спасибо за ваши мысли!

1 Ответ

1 голос
/ 12 ноября 2010

Базы данных способны делать больше, чем просто вставки. Они хороши для механизмов блокировки, управления транзакциями, быстрого поиска, пула соединений, и этот список можно продолжить.

С другой стороны, если все, что вам нужно сделать в общем, - это записать кусок данных на диск, база данных будет иметь огромные издержки.

Учитывая вышесказанное, и поскольку вы хотите писать что-то только в течение месяца, я бы рекомендовал вам использовать журналы, а раз в месяц - брать журналы, объединять их и анализировать. Затем вы можете решить, хотите ли вы объединить их все в базу данных (если это имеет смысл и дает вам дополнительную ценность), или вы просто хотите объединить текст вместе.

Кстати, вы можете сохранить операторы INSERT в этом журнале, а затем использовать его как скрипт для загрузки всего в базу данных. Подумай: -)

...