Основните разлики между InnoDB и MyISAM („по отношение на проектиране на таблица или база данни“, за които попитахте) са поддръжката за „препратка интегритет“ и „транзакции“.
Ако имате нужда от базата данни, за да наложите ограничения на външния ключ, или имате нужда от базата данни, за да поддържа транзакции (т.е. промени, направени от две или повече DML операции, обработвани като единична работна единица, с всички промени или приложени, или всички промени върнати) тогава бихте избрали двигателя InnoDB, тъй като тези функции отсъстват в двигателя MyISAM.
Това са двете най-големи разлики. Друга голяма разлика е едновременността. С MyISAM DML оператор ще получи изключително заключване на таблицата и докато това заключване е задържано, никоя друга сесия не може да извърши SELECT или DML операция на таблицата.
Тези два специфични двигателя, за които попитахте (InnoDB и MyISAM), имат различни дизайнерски цели. MySQL има и други машини за съхранение, със свои собствени дизайнерски цели.
И така, при избора между InnoDB и MyISAM, първата стъпка е да определите дали имате нужда от функциите, предоставени от InnoDB. Ако не, тогава MyISAM е за разглеждане.
По-подробното обсъждане на разликите е доста непрактично (в този форум) при липса на по-подробно обсъждане на проблемното пространство... как приложението ще използва базата данни, колко таблици, размер на таблиците, натоварване на транзакциите, обеми на избраните , вмъкване, актуализации, изисквания за едновременност, функции за репликация и др.
Логическият дизайн на базата данни трябва да бъде съсредоточен върху анализа на данните и изискванията на потребителите; изборът за използване на релационна база данни ще дойде по-късно и дори по-късно ще дойде изборът на MySQL като система за управление на релационна база данни и след това изборът на машина за съхранение за всяка таблица.