Может ли php прослушивать изменение или обновление базы данных mysql? … мышление в реальном времени, живой поиск здесь

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

Начиная с 5.0.2 MySQL поддерживает триггеры: http://dev.mysql.com/doc/refman/5.0/en/triggers.html

Но, к сожалению, я не знаю MySQL достаточно хорошо, чтобы узнать, можете ли вы сделать что-нибудь «полезное» в них, чтобы уведомить приложение (в Oracle я бы подумал об xp_). По крайней мере, вы могли бы написать строку в единую таблицу, подобную аудиту, чтобы вам нужно было только опросить в одном месте.

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

У меня есть приложение, над которым я работал 5-6 лет назад. В то время я искал аналогичное решение. Это было для моего приложения pre-twitter – мое собственное развитие смс на веб-странице без обновления. У меня был способ, которым я был опрос в то время … но по крайней мере у меня не было отвратительного обновления страницы. Плюс … Я дона

Это привело меня к кометному серверу. Это был мой ответ.

Я был убежден, что в чате Gmail используются настоящие технологии push, а также против опроса. Надеюсь, это приведет вас в правильном направлении.

AFAIK, нет возможности сказать MySQL, чтобы пинговать ваш скрипт, когда что-то там происходит.

Опрос кажется единственным правдоподобным решением …

Я не играл с ним, но заметил, что структура Symfony внесла «уведомление о событиях» … в основном, каждый раз, когда одна часть приложения делает INSERT или UPDATE, она создает событие, а другие фрагменты кода могут регистрироваться в «слушать» события и огонь.

Это будет все на уровне PHP, а не на уровне базы данных, но я думаю, что вы ищете.

Здесь есть хорошая статья о событиях symfony: http://www.symfony-project.org/blog/2009/02/21/using-the-symfony-event-system

Вы можете использовать что-то вроде Gearman (у которого есть интерфейс MySQL ), чтобы подталкивать ваш php-код, когда что-то происходит. Возможно, вы могли бы использовать эти события для создания статической страницы со всей новейшей информацией и использовать опрос на стороне клиента, чтобы захватить эту статическую страницу.

Однако я пока не использую Gearman, так что подробности о такой установке находятся вне меня.

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

и единственный способ – это то, о чем вы уже думаете, запрашивая сервер каждые 5 и более секунд.