El incremento es definitivamente malo si tiene más de un proceso escribiendo en la misma tabla:seguramente tendrá colisiones.
Dado que estamos hablando de MySQL, lo más fácil de usar sería identity
. En su mapeo de Hibernate:
<generator class="identity"/>
En su secuencia de comandos MySQL:
CREATE TABLE IF NOT EXISTS `my_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`data1` int(11) NOT NULL,
`data2` int(11) NOT NULL,
`timestamp` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
Para modificar una tabla existente:
ALTER TABLE `my_table`
CHANGE COLUMN `id` `id` int(11) NOT NULL AUTO_INCREMENT=$NEW_VALUE$;
donde $NEW_VALUE$ debe reemplazarse por la siguiente identificación disponible para que la secuencia no se restablezca a 1.