Все три вещи, которые Вы упоминаете (поблочное тестирование, управление версиями, гибкая разработка) преподаются до некоторой степени в Вычислительной Научной программе Университета Гронингена. Является ли это хорошей вещью, я уеду как нерешенный вопрос; но это не верно, что никакие университеты не преподают Вам "практический материал".
Да, вы можете использовать ключевое слово "ignore", и оно просто проигнорирует повторяющиеся ошибки. Он будет вставлять каждую строку, которую может, пропуская те, которые могут привести к дублированию (и он не остановит обработку данных). Если вы сделаете что-то вроде этого (где мы предполагаем, что первый столбец является первичным ключом):
insert игнорировать в c значения (1,1), (2,2), (3,3), (3,5), (4,5);
Тогда это означает, что (3,3) будет вставлено и (3,5) не будет. Все, кроме (3,5), будет вставлено (при условии новой таблицы).
Вероятно, нет жесткого ограничения, но вы можете провести тестирование, чтобы увидеть, где вы должны провести линию в зависимости от ваших потребностей.
Редактировать: Похоже, что MySQL имеет настраиваемый лимит на размер SQL-запросов, значение по умолчанию - 1 МБ. Дополнительная информация: http://dev.mysql.com/doc/refman/5.
Если вам не нужно расширять функциональность поиска каким-либо частным способом, Sphinx - ваш лучший выбор.
Преимущества Sphinx:
Преимущества Solr: