Alexander: Если отойти от Active Record - то обсуждаемо. Но если работа идет с AR - то вполне нормально. Судя по коду работа идет с пользовательскими данными - следовательно с помощью валидаторов вы сможете держать контроль. Имея такой функционал я бы не стал от него отказываться. Если я вас не понимаю - приведите конкретный пример задачи.
Alexander: в чем тогда?
$model->create($_POST['Model']['a'],$_POST['Model']['b']); вообще не имеет права на существование.
$model->a = $_POST['Model']['a'];
$model->b = $_POST['Model']['a'];
Аналогично
Если вам надо валидировать входящие данные - используйте валидаторы. Они то и отсеят что необходимо и чего нехватает.
Точечным ответом вам не помогу, но я бы подумал на mssql. С mysql у меня такой проблемы ниразу не случалось, вставски по несколько десятков тысяч в секунду. По поводу уникального идентификатора - попробуйте php.net/manual/en/function.uniqid.php
Если выполняется на нескольких хостах - используйте префикс. uniqid будет покороче uuidv4, и гарантирует уникальность, т.к. основан на microtime.
Вот еще хорошая статья по теме.