我希望能够实时更新我的搜索索引。使用 MySQL 中的触发器最容易做到这一点。向应用程序添加代码,在数据库更新的每个地方进行更新是非常痛苦的。触发器的问题在于它们减慢了对数据库的所有更新/插入/删除。
有什么方法可以调用一个函数来在索引上运行更新(或者只是调用一个 php 脚本然后处理更新)但是异步执行此操作。它不应该阻止触发器完成。
我使用 MySQL 作为数据库,使用sphinx作为搜索服务器
我建议在这里使用 gearman:
http://sphinxsearch.com/forum/view.html?id=9823
使用“后台”任务,允许它是异步的,并且不应该过多地延迟触发。
gearman 使从触发器调用 PHP 代码变得容易。
我不确定我是否正确理解了您的问题,但听起来像
INSERT DELAYED
http://dev.mysql.com/doc/refman/5.1/en/insert-delayed.html
和
UPDATE LOW_PRIORITY
http://dev.mysql.com/doc/refman/5.1/en/update.html
可能很有用,因为这些命令将数据库上的工作负载考虑在内。