Mysql
 sql >> база данни >  >> RDS >> Mysql

Индексирайте MySQL база данни с Apache Lucene и ги поддържайте синхронизирани

Докато оставите индексирането/преиндексирането да се изпълнява отделно от вашето приложение, ще имате проблеми със синхронизирането. В зависимост от сферата ви на работа, това може да не е проблем, но за много приложения с едновременни потребители е така.

Имахме същите проблеми, когато имахме система за работа, изпълняваща асинхронно индексиране на всеки няколко минути. Потребителите биха намерили продукт, използвайки търсачката, след което дори когато администраторско лице е премахнало продукта от валидния продуктов стек, пак го намираше във интерфейса, докато не се изпълни следващото задание за преиндексиране. Това води до много объркващи и рядко възпроизводими грешки, докладвани на първо ниво на поддръжка.

Видяхме две възможности:или да свържете здраво бизнес логиката с актуализациите на индекса за търсене, или да приложите по-строга задача за асинхронно актуализиране. Направихме второто.

На заден план има клас, работещ в специална нишка в приложението tomcat, който приема актуализации и ги изпълнява паралелно. Времето за изчакване за актуализации на бекофис към интерфейса е до 0,5-2 секунди, което значително намалява проблемите за поддръжка от първо ниво. И тъй като е възможно най-слабо свързано, бихме могли дори да внедрим различен механизъм за индексиране.



  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 база данни в друга mysql база данни

  2. Светият граал на почистването на входа и изхода в php?

  3. Как да импортирате дъмп на MySQL от командния ред СЪС презаписване

  4. SQL - Проверете дали колона автоматично се увеличава

  5. Изявление на SQL CASE