Не мог согласиться больше с тем, что говорится. Перестали работать рано, перестали работать быстро. Довольно хорошая молитва Исключения.
вопрос, о котором Исключением бросить является главным образом вопрос персонального вкуса. В моем уме IllegalArgumentException кажется более конкретным, чем использование NPE, так как это говорит мне, что проблема была с аргументом, который я передал методу а не со значением, которое, возможно, было сгенерировано при выполнении метода.
Мои 2 цента
Первичный ключ всегда индексируется. Это то же самое для MyISAM и InnoDB, и обычно верно для всех механизмов хранения, которые вообще поддерживают индексы.
Согласно http://dev.mysql.com/doc/refman/5.0/en/constraint-primary-key.html , похоже, что это будет быть неявным
Первичный ключ неявно индексируется как для MyISAM, так и для InnoDB. Вы можете проверить это, используя EXPLAIN в запросе, который использует первичный ключ.
Вам не нужно явно создавать индекс для первичного ключа ... это делается по умолчанию.