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

Смесване на резултати от различни категории, подредени по резултат в MySQL

Вземете първите 20. Ако те не отговарят на изискванията, направете допълнителна заявка, за да получите липсващите парчета. Трябва да сте в състояние да постигнете някакъв баланс между броя на заявките и броя на връщаните редове.

Ако сте получили първите 100, това може да удовлетвори изискванията в 90% от времето и би било по-евтино и по-бързо от 10 отделни заявки.

Ако беше SQL Server, можех да помогна повече...

Всъщност имам друга идея. Стартирайте процес на всеки 5 минути, който изчислява списъка и го кешира в таблица. Направете DML срещу свързани таблици да обезсили кеша, така че да не се използва, докато не бъде повторно попълнен (може би дадена статия е била изтрита). Ако кешът е невалиден, ще се върнете към изчисляването му в движение... И така или иначе бихте могли да го използвате за повторно попълване на кеша.

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

Това трябва да помогне както за скоростта на заявката, така и за намаляване на натоварването на вашата база данни. Не би трябвало да има голямо значение, ако списъкът ви със статии е остарял с 5 минути. По дяволите, дори 1 минута може да свърши работа.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php mysql сравнява long и lat, връща такива под 10 мили

  2. Wildfly и автоматично повторно свързване към базата данни

  3. TIMESTAMP означава?

  4. mysql_fetch_assoc():предоставеният аргумент не е валиден ресурс за MySQL резултат

  5. Сравнете Facebook масив от списък с приятели с MySQL таблица