Bonjour à toute la communauté,
Heureux de vous rejoindre ce jour J'espère que je pourrai apporter mon aide sur le forum. Aujourd'hui par contre c'est moi qui rencontre un soucis que je n'arrive pas à résoudre avec MySQL.
Pour faire simple : pour tracker en détail les envois de mes emails, lors de chaque envoi sur ma base d'utilisateurs j'effectue un INSERT correspondant à mon nombre d'utilisateurs, environ 100k pour l'instant. Je fais donc un INSERT de 100k lignes environ pour chaque newsletter qui sont ensuite traités par un cron au fur et à mesure (lissage). Lorsque je fais des modifications je fais des UPDATES sur ce même nombre de lignes.
Mon soucis est très simple, le temps d'un INSERT/UPDATE même si il est très rapide, sur des centaines de milliers de lignes, la requête devient beaucoup trop longue (environ 40 secondes). Mes requêtes sont vraiment bien optimisées, là je suis devant un vrai problème de temps d'un INSERT quoi qu'il arrive. Et si un jour j'arrive à devoir INSERT/UPDATE un million de lignes je ne veut même pas imaginer :/
la question à ultra simplifié est donc : je veux insérer/update 1 000 000 d'enregistrement en quelques secondes comment faire ?
Sachant que cette architecture est indispensable pour un suivit parfait de mes emails, je suppose donc que je suis foutu et que je dois changer de SGBD ?
Peux-être avez-vous une technique (qui je pense n'existe pas pour MySQL) ? Sinon quel SGBD choisir pour insérer et update des millions d'enregistrements en seulement quelques secondes ?
Je pense que cela est possible car je sais de source sur que les opérateurs type Mailjet et compagnie enregistre bien chaque email envoyé sur une ligne. Donc des millions voir des milliards de lignes traités chaque jour.
Je suis désolé si je m'exprime mal. Merci de bien comprendre que l'optimisation des requêtes ne changera rien, seul une stratégie ou changement de SGBD pourrait m'aider il me semble.
Merci par avance à toute la communauté
Partager