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

Indeks database MySQL dengan Apache Lucene, dan sinkronkan

Selama Anda membiarkan pengindeksan/pengindeksan ulang berjalan secara terpisah dari aplikasi Anda, Anda akan mengalami masalah sinkronisasi. Bergantung pada bidang pekerjaan Anda, ini mungkin tidak menjadi masalah, tetapi untuk banyak aplikasi pengguna-konkuren, hal ini menjadi masalah.

Kami memiliki masalah yang sama ketika kami memiliki sistem pekerjaan yang menjalankan pengindeksan asinkron setiap beberapa menit. Pengguna akan menemukan produk menggunakan mesin telusur, kemudian bahkan ketika orang administratif menghapus produk dari tumpukan produk yang valid, masih menemukannya di frontend, hingga pekerjaan pengindeksan ulang berikutnya berjalan. Hal ini menyebabkan kesalahan yang sangat membingungkan dan jarang direproduksi yang dilaporkan ke dukungan tingkat pertama.

Kami melihat dua kemungkinan:Hubungkan logika bisnis dengan erat ke pembaruan indeks pencarian, atau terapkan tugas pembaruan asinkron yang lebih ketat. Kami melakukan yang terakhir.

Di latar belakang, ada kelas yang berjalan di utas khusus di dalam aplikasi Tomcat yang mengambil pembaruan dan menjalankannya secara paralel. Waktu tunggu untuk pembaruan backoffice ke frontend turun menjadi 0,5-2 detik, yang sangat mengurangi masalah untuk dukungan tingkat pertama. Dan, jika digabungkan secara longgar, kami bahkan dapat mengimplementasikan mesin pengindeksan yang berbeda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mempercepat pemuatan data ke InnoDB (LOAD DATA INFILE)?

  2. Host MySQL '::1' atau '127.0.0.1' tidak diizinkan untuk terhubung ke server MySQL ini

  3. Bagaimana cara menjadwalkan fungsi dinamis dengan cron job?

  4. Menarik data ke template dari database eksternal dengan Django

  5. Menghitung jumlah total peralatan untuk rentang tanggal