Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để tạo một truy vấn mysql liên tục làm mới trong PHP?

Bạn đang gặp khó khăn với việc thăm dò ý kiến ​​với ngăn xếp công nghệ hiện tại của mình. MySQL không có bất kỳ cách tốt nào để gửi thông báo cho bạn rằng có một cái gì đó mới để xem.

(Bạn có thể cân nhắc thêm một hệ thống con xếp hàng tin nhắn, chẳng hạn như RabbitMQ, nhưng điều đó sẽ yêu cầu một sự thay đổi lớn đối với cấu trúc ứng dụng của bạn).

Một số hướng dẫn để xử lý việc bỏ phiếu với chi phí ít nhất có thể.

  1. Đặt kỳ vọng của người dùng ở độ trễ tin nhắn vài giây thay vì mili giây.

  2. Truy vấn thường xuyên nếu cần để đáp ứng mong đợi về độ trễ.

  3. Tránh truy vấn nhiều dữ liệu với mỗi truy vấn. Làm thế nào bạn có thể làm điều đó?

    một. Lưu dấu thời gian gần đây nhất bất cứ khi nào bạn chạy truy vấn

    b. Không sử dụng SELECT * . Thay vào đó, hãy cung cấp tên của các cột bạn thực sự cần. Điều này cho phép trình tối ưu hóa của MySQL giúp cắt giảm chi phí cho các truy vấn của bạn.

    c. Thực hiện các truy vấn của bạn SELECT whatever WHERE timestamp > saved_timestamp ORDER BY timestamp vì vậy bạn chỉ nhận được các mục mới từ bàn của bạn, theo thứ tự. Nếu hệ thống của bạn không bận lắm, các CHỌN này thường sẽ không trả về hàng nào. Điều đó tốt.

    d. Đảm bảo rằng bạn có một chỉ mục nhiều cột trên dấu thời gian và các cột khác trong câu lệnh SELECT của bạn. Đây được gọi là chỉ mục bao trùm .

    e. Ngay sau khi bạn mở kết nối với MySQL, hãy phát hành câu lệnh SQL này. Nó cho phép MySQL tìm nạp dữ liệu của bạn mà không gây tranh cãi với các máy khách MySQL khác khi chèn các hàng vào bảng.

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

Nếu bạn đang thực hiện việc này với AJAX từ trình duyệt của người dùng, bạn muốn đưa dấu thời gian mới nhất vào các yêu cầu AJAX để bạn có thể cung cấp các mục mới cần thiết cho trình duyệt của mỗi người dùng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi có nên sử dụng các câu lệnh đã chuẩn bị sẵn cho MySQL trong PHP PERFORMANCE-WISE không?

  2. Làm thế nào để sử dụng toán tử lớn hơn với ngày?

  3. Hive 2.1.1 MetaException (thông báo:Không tìm thấy thông tin phiên bản trong hệ thống di căn.)

  4. Làm cách nào để xác định kích thước giao dịch tối đa trong MySQL?

  5. Trường số nguyên MySQL được trả về dưới dạng chuỗi trong PHP