ผมเขียนเว็บด้วย PHP JavaScript แล้วต้องมีฟังก์ชันนึงที่จะต้อง check MySQL ตลอดครับ ผมจึงเลือกใช้ JavaScript setinterval เพื่อวนลูป check ค่าใน MySQL ทุกๆ 10 วินาที ด้วย Ajax โดยวนลูปจนกระทั่งมีการ insert into MySQL ครับ ผลการมำงานสามารถใช้งานได้ตามปกติครับ แต่หลังจากมีผู้ใช้งานเพิ่มมากขึ้น server ก็เกิดปัญหาล่มบ่อยครั้ง สาเหตุน่าจะมาจากการที่มีการ connection กับ MySQL มากเกินไป จากการวนลูป requests
หลังจากหาข้อมูลมาซักระยะทำให้ทราบว่า node js สามาร response ได้ต่อเนื่องโดยใช้เพียงแค่ 1 requests ทำให้ server ไม่ทำงานหนัก แต่ติดปัญหาคาใจมาคำถามนึงครับว่า node js สามารถใช้งานร่วมกับเว็บ PHP ได้มั้ยครับ เพราะเท่าที่หาข้อมูลมาไม่เห็นมีแนะนำวิธีการใช้งานร่วมกันเลยครับ ขอบคุณครับ
เข้าใจว่าสิ่งที่ต้องการคือ long polling คือ ส่ง request ไปเพื่อแล้วรอจนกว่าจะมีข้อมูลใหม่ หรือรอจนมี event อะไรสักอย่างใช่ไหมครับ ถ้าใช่ก็ไม่มีอะไรมากครับ ใน PHP ก็แค่วน fetch ข้อมูลไปเรื่อยๆ จนกว่าจะเจออันที่สนใจแล้วก็ตอบกลับ ฝั่ง client ก็ส่ง request ไปแค่ครั้งเดียว (ค่อยส่งใหม่ถ้า error) อาจจะต้องมีการปรับ timeout ทั้งฝั่ง server และ client นิดหน่อยครับ ลองดูตัวอย่างนี้ก็ได้
https://github.com/panique/php-long-polling
หรือว่าถ้าต้องการ stream output ออกมาเรื่อยๆ ก็ได้เหมือนกันครับ
https://stackoverflow.com/questions/7740646/jquery-read-ajax-stream-incrementally
ลองหาสาเหตุของการล่มก่อนครับว่าล่มเพราะ php หรือล่มเพราะ mysql
นอกจากที่ท่านอื่นตอบไปแล้ว มีอีกเทคนิคคือเปลื่ยนให้ server ดันข้อมูลมาที่ client แทนครับ ใช้กันเป็นมาตฐานตอนนี้คือ SSE หรือ WebSocket
ส่วนมากมาจาก bottle neck ของ MySql นะครับ ลองทำ replication เพื่อทำ master/slave ดูครับ น่าจะดีขึ้น
ตอบคำถามเรื่อง nodejs มันจะมี response time ดีกว่าแน่ครับ แต่ปัญหาที่เว็บล่มมันน่าจะมาจาก bottleneck ของ MySql แบบที่บอกไป
ถ้าข้อมูลไม่ได้ realtime แนะนำ caching ที่ฝั่ง server ครับ
ถ้าจำไม่ผิด php มันจะรันบน web server ผ่านทาง Fast-CGI interface ในขณะที่ NodeJS application ส่วนใหญ่จะเป็น standalone web server
ซึ่งถ้าเราทำแค่เว็บเล็ก ๆ ผมว่ารัน web server หลาย ๆ ตัวมันก็ดูจะวุ่นวายพอสมควร แต่ก็ทำได้ครับ ก็ใช้เจ้า web server ที่รัน php เนี่ยเป็น reverse proxy ส่ง request ไปให้ตัว nodejs อีกทีนึง
อีกทางเลือกนึงคือใช้ NodeJS ผ่านทาง FastCGI เหมือนกัน เห็นมีคนทำอยู่
ทั้งนี้มันขึ้นกับ hosting ด้วย ถ้า hosting ไม่คอนฟิกให้ก็จบ
ทั้งนี้ผมว่าเรื่องความเร็วไม่น่าจะหนีกันมากมายนะ อันนี้ไม่รู้เหมือนกันครับไม่เคยลอง อาจจะเหมือนที่ท่านอื่น ๆ ว่าไว้ คือน่าจะเป็ฯที่คอขวดของ DB server มากกว่า