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

Оптимизиране на проста заявка за две големи таблици

Доколкото знам, най-добрият начин да направите заявка като тази "светкавично бързо" е да създадете обобщена таблица, която проследява показванията на страници на приятели на страница за създател.

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

Обобщените таблици са ключът към поддържането на добра производителност за заявки от тип агрегиране в среди, предимно за четене. Вие вършите работата предварително, когато се появят актуализациите (рядко) и след това заявките (чести) не трябва да вършат никаква работа.

Ако статистиката ви не трябва да е перфектна и вашите записи всъщност са доста чести (което вероятно е случаят с нещо като изгледи на страници), можете да групирате изгледи в паметта и да ги обработвате във фонов режим, така че приятелите да не Не трябва да се опитват да поддържат обобщената таблица актуална, докато преглеждат страниците. Това решение също така намалява конкуренцията в базата данни (по-малко процеси, актуализиращи обобщената таблица).



  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 Great Circle Distance (формула на Haversine)

  2. MySQL - Как да нормализирате колона, съдържаща идентификатори, разделени с разделители

  3. Достъпът до Java JDBC е отказан на потребителя

  4. PHP многоизмерен масив от mysql резултат

  5. как мога да преброя състоянието, променено/актуализирано по категории за конкретен месец