Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara membuat kueri mysql terus diperbarui di PHP?

Anda terjebak dengan polling dengan tumpukan teknologi Anda saat ini. MySQL tidak memiliki cara yang baik untuk mengirimkan pemberitahuan kepada Anda bahwa ada sesuatu yang baru untuk dilihat.

(Anda dapat mempertimbangkan untuk menambahkan subsistem antrian pesan, seperti RabbitMQ misalnya, tetapi itu akan membutuhkan perubahan besar pada struktur aplikasi Anda).

Beberapa pedoman untuk menangani pemungutan suara dengan biaya seminimal mungkin.

  1. Tetapkan ekspektasi pengguna pada latensi beberapa detik pada pesan, bukan milidetik.

  2. Kueri sesering yang diperlukan untuk memenuhi ekspektasi latensi.

  3. Hindari meminta banyak data dengan setiap kueri. Bagaimana Anda bisa melakukannya?

    sebuah. Simpan stempel waktu terbaru setiap kali Anda menjalankan kueri

    b. Jangan gunakan SELECT * . Alih-alih berikan nama kolom yang sebenarnya Anda butuhkan. Ini memungkinkan pengoptimal MySQL membantu memangkas biaya kueri Anda.

    c. Buat kueri Anda melakukan SELECT whatever WHERE timestamp > saved_timestamp ORDER BY timestamp jadi Anda hanya mendapatkan item baru dari meja Anda, secara berurutan. Jika sistem Anda tidak terlalu sibuk, SELECT ini sering kali tidak mengembalikan baris. Itu bagus.

    d. Pastikan Anda memiliki indeks multikolom pada stempel waktu dan kolom lain dalam pernyataan SELECT Anda. Ini disebut indeks penutup .

    e. Tepat setelah Anda membuka koneksi ke MySQL, keluarkan pernyataan SQL ini. Ini memungkinkan MySQL mengambil data Anda dengan lebih sedikit pertengkaran dengan klien MySQL lain yang menyisipkan baris ke tabel.

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

Jika Anda melakukan ini dengan AJAX dari browser pengguna Anda, Anda ingin menyertakan stempel waktu terbaru dalam permintaan AJAX sehingga Anda dapat mengirimkan item baru yang dibutuhkan ke setiap browser pengguna.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - Mengurangi nilai dari baris sebelumnya, kelompokkan menurut

  2. Cara menggunakan NHibernate dengan server MySQL dan server Microsoft SQL 2008

  3. Menghubungkan ke server MySQL jarak jauh menggunakan PHP

  4. Gagal terhubung ke mysql di 127.0.0.1:3306 dengan akses root pengguna ditolak untuk 'root'@'localhost' pengguna (menggunakan kata sandi:YA)

  5. Pengkodean hibernasi salah saat mempertahankan objek [UTF-8]