Скорость: MySQL против вывода файла - PullRequest
1 голос
/ 26 февраля 2011

У меня есть php-скрипт, который будет выполняться в течение примерно 1 часа каждый раз, и во время его выполнения ему нужно будет хранить постоянный поток комментариев о том, что он делает для просмотра позже.По сути, каждый комментарий включает метку времени и краткое описание, например, «25.02.2010 18:40:29: обновлена ​​цена товара 255».

Так что быстрее, вывести его в файл .txt или вставить в базу данных MySQL?Кроме того, я должен использовать метку времени из PHP date (), или я должен создать объект времени в MySQL?

Вторая часть моего вопроса заключается в том, что, поскольку программа будет работать около часа, я долженподключаться к MySQL, вставлять данные и закрывать соединение с базой данных MySQL каждый раз, когда я записываю комментарий, или я должен просто подключиться один раз, вставить данные для выполнения программы, а затем закрыть соединение при выходе из программычерез час после создания первоначального соединения?

Заранее благодарим за все ваши советы.

Ответы [ 3 ]

3 голосов
/ 26 февраля 2011

Это зависит от вашей потребности в данных в конце дня.Нужно ли иметь возможность проводить аудит данных вне прокрутки файла.Если вам не нужно просматривать данные или хранить их вечно, то плоский файл будет быстрее, чем MySQL, скорее всего, если вы просто добавляете его в конец файла.

Если вам нужноЧтобы данные были более полезными, вы захотите сохранить их в MySQL.Я бы посоветовал вам структурировать вашу таблицу следующим образом:

id  int
timestamp datetime default now()
desc varchar

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

2 голосов
/ 26 февраля 2011

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

1 голос
/ 26 февраля 2011

По моему опыту, гораздо быстрее написать файл .txt, чем использовать MySQL для записи журнала. Видите, если вы пишете комментарии в БД, то вам нужно написать больше кода, чтобы получить эти комментарии из БД позже, вместо того, чтобы просто использовать cat или more или vi или подобное чтобы увидеть комментарии.

Если вы выбираете маршрут к БД: вполне нормально, чтобы соединение оставалось открытым в течение вашего часа, но вы должны уметь обрабатывать «сервер ушел», если вы не писали в БД некоторое время.

- Пит

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