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

Колко скъпи са JOIN в SQL? И/или какъв е компромисът между производителността и нормализирането?

Най-добрата практика е винаги започнете с 3NF и след това помислете за денормализиране само ако откриете специфичен проблем с производителността.

Изпълнението е само едно от проблемите, с които трябва да се справите с базите данни. Чрез дублирането на данни рискувате да позволите непоследователни данни да бъдат във вашата база данни, като по този начин анулирате един от основните принципи на релационните бази данни, последователността (C в ACID ) .

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

И не забравяйте мантрата за оптимизация:измерете, не гадайте! И измервайте в среда, подобна на производството. И запазете измерване (и настройка) периодично - оптимизацията е само операция за настройка и забравяне, ако вашата схема и данни никога не се променят (много малко вероятно).

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. лесни начини за избор на редове от цялата таблица

  2. Mysql получава последния идентификационен номер на конкретна таблица

  3. Как да използвате външни ключове с PHP

  4. Отчет за посещаемостта в MySql

  5. Броят на параметрите на заявката на MySQL съвпада с аргументите, предадени за изпълнение, но Python не повдига всички преобразувани аргументи