Bonjour,
J'ai une table de base de données comptant environ 40 millions de rows.
J'ai un INDEX UNIQUE en CHAR (76) qui correspond à une chaine unique représentative et synthétisant l'intégralité de la ligne.
Tous les jours à heures précises, des dizaines d'utilisateurs tentent de créer la même ligne au même moment, et donc le même index unique.
Cette solution d'INDEX UNIQUE me permet d'éviter que plusieurs utilisateurs puissent créer la même ligne.
Le problème est que les utilisateurs tentent de créer cette ligne à la seconde près en même temps, cette concurrence des INSERT créer un goulot d'étranglement avec un load average très élevé (>50) et de plus les INSERTS deviennent très très lents à finaliser durant cette période.
D'où peux venir ce ralentissement? Est-ce l'INDEX UNIQUE qui est trop gros (char(76))? Est-ce dû au fait que la base contient plusieurs millions de rows?
Existe t'il une autre solution optimisée qu'un index unique qui permettrait de s'assurer que plusieurs utilisateurs ne puissent pas créer des doublons en concurrence, sachant que tous les jours les utilisateurs se ruent par exemple à 7h00:01 pour créer les mêmes lignes..
Merci d'avance
Hector
Partager