sql >> Databáze >  >> RDS >> Mysql

Snižuje zavedení cizích klíčů do MySQL výkon

Za předpokladu:

  1. Již používáte modul úložiště, který podporuje FK (tj. InnoDB)
  2. Již máte indexy příslušných sloupců

Pak bych odhadl, že lepší výkon dosáhnete tím, že MySQL vynutí integritu. Vynucování referenční integrity je koneckonců něco, k čemu jsou databázové stroje optimalizovány. Psaní vlastního kódu pro správu integrity v Ruby bude ve srovnání s tím pomalé.

Pokud potřebujete přejít z MyISAM na InnoDB, abyste získali funkci FK, musíte zvážit kompromisy ve výkonu mezi těmito dvěma motory.

Pokud ještě nemáte indexy, musíte se rozhodnout, zda je chcete. Obecně řečeno, pokud děláte více čtení než zápisů, chcete (potřebujete, dokonce) indexy.

Naskládání FK na věci, které jsou aktuálně indexovány, by mělo způsobit menší zásah do celkového výkonu než implementace těchto druhů kontrol v kódu vaší aplikace.



  1. Nerozumím Collation? (Mysql, RDBMS, znakové sady)

  2. Jar v externích knihovnách, ale nelze importovat v kódu

  3. Psaní volitelných parametrů v rámci uložených procedur v MySQL?

  4. Funkce SYS_EXTRACT_UTC() v Oracle