Ако приемем:
- Вече използвате машина за съхранение, която поддържа FK (т.е. InnoDB)
- Вече имате индекси на участващите колони
Тогава предполагам, че ще получите по-добра производителност, като MySQL налага интегритет. Налагането на референтния интегритет в крайна сметка е нещо, за което двигателите на базата данни са оптимизирани. Написването на собствен код за управление на целостта в Ruby ще бъде бавно в сравнение.
Ако трябва да преминете от MyISAM към InnoDB, за да получите функционалността на FK, трябва да вземете предвид компромисите в производителността между двата двигателя.
Ако все още нямате показатели, трябва да решите дали ги искате. Най-общо казано, ако четете повече, отколкото пишете, искате (нуждаете се дори от) показателите.
Подреждането на FK върху нещата, които в момента са индексирани, би трябвало да доведе до по-малко общо въздействие върху производителността, отколкото прилагането на тези видове проверки в кода на приложението ви.