我試圖想到處理實時搜索網站的最佳方式。我能想出的唯一解決方案是每隔幾秒鐘檢查一次服務器,以查找數據庫中的新內容,但這對我來說似乎不太實際。php可以偵聽mysql數據庫更改或更新嗎? ...思考實時,在這裏實時搜索
回答
不,它不能,因爲MySQL不能。您需要使用其他技術,可能包括消息隊列或流式數據庫。
AFAIK,當有事情發生時,無法告訴MySQL ping你的腳本。
輪詢似乎是唯一可行的解決方案......
你認爲多數民衆贊成怎麼做了嗎? – 2010-05-22 08:27:24
@Derrick WTF? Twitter有很多解決方案。你不需要DB通知任何人有更新;它可能是發佈新狀態更新的同一個腳本負責分發新線程以通知其他方。 – Seb 2010-05-22 16:24:52
是的 - 但這不是一個Twitter應用程序。 – 2010-05-22 20:24:26
我沒有玩過,但已經注意到,Symfony框架已經出臺「事件通知」 ......基本上,每次在應用程式的一部分進行插入或更新,它創建一個事件,並且其他代碼段可以註冊以「聽」事件並觸發。
這將全部在PHP級別,而不是數據庫級別,但我認爲你在找什麼。
有關於symfony的事件,這裏的好文章:http://www.symfony-project.org/blog/2009/02/21/using-the-symfony-event-system
用途是什麼,你已經發送頁面給用戶後? 這個事件系統會ping用戶並告訴他重新加載該站點嗎? – user242294 2010-05-21 18:27:57
不,爲了獲取信息給用戶,您必須從客戶端進行輪詢。儘管這些事件允許其他服務器端PHP代碼基於MySQL數據庫更改運行,但這是最初的問題。 – Nathan 2010-05-21 18:34:12
我將「實時搜索網站」解釋爲網站,每5(或任何)秒自動查詢新的結果,然後將該數據粘貼到已有的結果列表中 – user242294 2010-05-21 18:47:09
即使PHP可能會如何u顯示更新給用戶,U必須查詢服務器來顯示結果。
唯一的辦法就是你已經在想什麼,每5秒鐘查詢一次服務器,。
-1爲什麼? :S – 2010-08-27 09:28:06
隨着5.0.2的MySQL的支持觸發器:http://dev.mysql.com/doc/refman/5.0/en/triggers.html
但不幸的是,我不知道MySQL的不夠好,知道你是否可以做任何事情「有用」,在他們通知應用程序(在Oracle我想想着xp_)。至少你可以將一行寫入單個類似審計的表中,這樣你只需要在一個地方進行輪詢。
酷似聽起來像是禮儀方向上的一步,接下來是告訴mysql運行一個php腳本,然後在web瀏覽器上運行js來更新頁面,我不明白twitter是如何做到的...... ? – 2010-05-22 08:26:09
你可以使用類似Gearman(它有一個MySQL interface)來推動你的PHP代碼,當發生新的事情。也許你可以使用這些事件來構建一個包含所有最新信息的靜態頁面,並在客戶端使用輪詢來獲取該靜態頁面。
雖然我還沒有使用Gearman,所以關於這種設置的細節超出了我的想象。
很酷,謝謝我檢查一下。 – 2010-08-27 21:09:04
我有一個我在5-6年前工作過的應用程序。我當時正在尋找類似的解決方案。這是我的推特前應用程序 - 我自己開發的網頁沒有刷新的短信。我有一種方式,當時我在投票...但至少我沒有任何可怕的頁面刷新。加...我不會
這導致我彗星服務器。那是我的答案。
我被引導認爲gmail聊天使用真正的推技術以及反對投票。希望能帶領你走向正確的方向。
- 1. 實時更新可搜索的數據庫MYSQL和PHP
- 2. 關於數據庫更改的實時更新通知MYSQL PHP
- 3. 我可以使用URL更改Firebase實時數據庫嗎?
- 4. 以對話框形式實現數據更改偵聽器
- 5. 在數據庫中更改表格時可以刷新gridview嗎?
- 6. PHP實時更新
- 7. Laravel使用mysql實時更新數據
- 8. Firebase實時數據偵聽器
- 9. 更新App時,identifierForVendor可以更改嗎?
- 10. 更新時間戳PHP MySQL數據庫
- 11. 彗星和PHP實時數據更新?
- 12. 收聽MySQL中的數據庫更改
- 13. Jquery實時搜索
- 14. SignalR在數據庫更新後不會實時更新網站
- 15. 我可以使用ninject實時更改實現嗎?
- 16. PHP實時搜索數組
- 17. 實時更新Web系統 - Ajax,PHP,MySQL
- 18. ASP.NET MVC 1,實時搜索和更新數據
- 19. 索引更新時可以查詢Azure搜索嗎?
- 20. 實時搜索,XML或SQL會更快嗎?
- 21. 如何使用PHP在Firebase數據庫上偵聽數據更改?
- 22. 我在哪裏可以找到更新的實時匯率?
- 23. php Dropdown實時更新
- 24. 如何使用php和mysql更新實時數據
- 25. 是否可以實時更改菜單?
- 26. 實時更改聽寫主題
- 27. PHP更新MySQL數據庫
- 28. 使用php mysql進行實時搜索
- 29. 更新時間在mysql數據庫
- 30. 實體框架:修改模型時如何更新數據庫
那麼你打算如何將數據發送給用戶? – user242294 2010-05-21 18:29:47
您是否考慮過使用啓用彗星的數據庫或守護進程? – 2010-05-22 00:29:13
@Derrick你有解決嗎? – 2011-09-30 13:46:10