Мы создаем приложение ajax, в которое пользовательский ввод отправляется для обработки в php-скрипт. В настоящее время мы записываем каждый запрос в файл журнала для отслеживания. Я хотел бы переместить это отслеживание в таблицу базы данных, но я не хочу запускать инструкцию insert после запроса. То, что я хотел бы сделать, - создать «очередь» транзакций (вставки и обновления), которые необходимо обработать в базе данных MySQL. Затем я установил задание или процесс cron для проверки и обработки транзакций в очереди. Есть ли что-то там, на что мы можем опираться, или нам нужно просто писать в текстовые лог-файлы и обрабатывать их?MySQL Вставка Statement Queue
ответ
Вы хотите, чтобы Gearman - очередь будет отправляться в очередь и вставлять их как и когда база данных готова для них, поэтому вы не перегружаете свой сервер БД.
Gearman обеспечивает общее применение основу для откуп работы других машин или процессов, которые лучше подходит для выполнения работы. Это позволяет вам выполнять параллельную работу, загружать обработку баланса и звонить между функциями между языками. Это может быть , используемый в различных приложениях, с веб-сайтов высокой доступности до транспорт репликации базы данных событий. Другими словами, это нервная система для того, как передается распределенная обработка . Несколько сильных точки около Gearman:
Там в последнее время (и качество) поста об использовании баз данных для регистрации here, который (обобщенный) говорит:
- Использование MyISAM с параллельными вставками
- Поворот таблицы ежедневно и использовать UNION для запроса
- Используйте запаздывающие вставки с MySQL или агентом обработки заданий, таким как Gearman (хотя MySQL имеет ограничение на количество из них, он будет стоять перед их молчанием!)
HighScalability write up on Gearman.
Если вы действительно хотите, чтобы избежать этого, вы могли бы написать исходные операторы SQL в файл и обрабатывать их с помощью этой cronjob:
mysql loggingDB logTable < fullLog.sql && > fullLog.sql
MySQL может сделать некоторые работы для вас:
ВСТАВИТЬ ЗАДЕРЖКУ
http://dev.mysql.com/doc/refman/5.1/en/insert-delayed.html
«запаздывающий вариантом для утверждения INSERT является расширением MySQL к стандартному SQL, который очень использование если у вас есть клиенты, которые не могут или не должны ждать завершения INSERT. Это обычная ситуация, когда вы используете MySQL для регистрации ...»
К сожалению,„ЗАДЕРЖКА“вариант доступен только на INSERT, а не на UPDATE.
Я думаю Zend_Queue класс ваше потерянное здесь является пример http://www.zfsnippets.com/snippets/view/id/60
- 1. Вставка MYSQL с использованием подготовленного PHP Statement
- 2. Confused about Mysql Вставка Statement с использованием JDBC
- 3. MySQL Вставка Statement external key auto add pk
- 4. Простая вставка Statement работает в MySQL Workbench, но не PHP
- 5. mySql statement
- 6. PHP + MySQL Цикл Queue
- 7. Вставка MySQL Java
- 8. mysql select statement from multiple statement
- 9. MySQL where statement in a where statement
- 10. Таблица MySQL как FIFO/Queue
- 11. Множественная вставка Statement blocking small one
- 12. Вставка Statement, не работающая для Insert Insert
- 13. Dynamic MySQL Update Statement
- 14. complex mysql select statement
- 15. MySQL INSERT INTO Statement
- 16. mysql join statement
- 17. MYSQL & is not statement
- 18. for() и mysql statement
- 19. Conidtional MySQL WHERE Statement
- 20. mysql query join statement
- 21. MYSQL STATEMENT SYNTAX ERROR
- 22. Mysql advanced statement
- 23. MySql Select Statement Issue
- 24. MySQL «in» statement
- 25. MySQL where if statement
- 26. MYSQL if statement question
- 27. Mysql Update select statement
- 28. C#, MySql Select statement
- 29. mysql statement wont insert
- 30. mysql IF Else Statement
@ Justin добро пожаловать в SO.Я редактировал в «queue», так как я уверен, что это вы имели в виду. Если это не так, не стесняйтесь откатываться. –