{"id":2196,"date":"2026-10-07T15:52:14","date_gmt":"2026-10-07T13:52:14","guid":{"rendered":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/?p=2196"},"modified":"2026-10-08T16:43:31","modified_gmt":"2026-10-08T14:43:31","slug":"database-performance-postgres-vs-mysql","status":"publish","type":"post","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/performance-base-de-donnees-postgres-vs-mysql\/","title":{"rendered":"Performance base de donn\u00e9es : Postgres vs. MySQL"},"content":{"rendered":"<p><a href=\"https:\/\/kestra.io\">Kestra<\/a> supporte entre autre Posstgres et MySQL comme base de donn\u00e9es, nos benchmarks internes montraient que Postgres \u00e9tait beaucoup plus performant que MySQL pour faire tourner Kestra. Nous conseillons donc g\u00e9n\u00e9ralement de faire fonctionner Kestra en production avec Postgres.<\/p>\n<p>Lors de nos <a href=\"https:\/\/kestra.io\/docs\/performance\/benchmark\">benchmarks<\/a>, Postgres support 4000 executions\/mn avec une latence de 370ms pour nos flow type, avec une latence autour de 130ms pour un lancement unique. MySQL de son c\u00f4t\u00e9 n&rsquo;arrive m\u00eame pas \u00e0 soutenir 1000 executions\/mn et a une latence autour de 160ms pour un lancement unique.<\/p>\n<p>Mais pourtant, certains de nos utilisateurs utilisaient MySQL sans aucun souci, cela m&rsquo;a pouss\u00e9 \u00e0 me pencher sur la question.<\/p>\n<p>Kestra utilise sa base de donn\u00e9es pour trois choses :<\/p>\n<ol>\n<li>Stocker les ressources li\u00e9es au workflow (flow, metadata, users, &#8230;)<\/li>\n<li>Stocker les donn\u00e9es d&rsquo;ex\u00e9cution de workflow<\/li>\n<li>Queue interne pour passage de messages asynchrone entre composants<\/li>\n<\/ol>\n<p>La queue interne est la plus sensible des utilisations, elle est au coeur de Kestra et son Executor, responsable de la logique d&rsquo;orchestration, en est tr\u00e8s d\u00e9pendant.\nL&rsquo;Executor traite une ex\u00e9cution en boucle, \u00e0 chaque \u00e9tape il va faire avancer le workflow puis envoyer des t\u00e2ches \u00e0 ex\u00e9cuter au worker et un ev\u00e8nement de mise \u00e0 jour de l&rsquo;ex\u00e9cution pour se re-d\u00e9clencher lui-m\u00eame.\nDonc il lit un message dans la queue, traite le message, et en envoie un autre.\nLa queue JDBC fonctionne via un <code>SELECT ... FOR UPDATE<\/code>, \u00e0 la fin du traitement du message, il est supprim\u00e9 dans la m\u00eame transaction.\nPour optimiser les performances, la queue lit en batch (<code>pollSize<\/code> &#8211; 100 par d\u00e9fault) et l&rsquo;Executor traite en parall\u00e8le sur un nombre de threads configur\u00e9 par d\u00e9faut au nombre de coeurs CPU disponible.<\/p>\n<p>Chaque ex\u00e9cution peut induire des <strong>dizaines voire des centaines de messages<\/strong> et donc de transactions DB, ce que je suspecte \u00eatre la cause des diff\u00e9rences de performances.<\/p>\n<p>Apr\u00e8s avoir v\u00e9rifi\u00e9 que les indexes \u00e9taient identiques entre les deux bases et correctement utilis\u00e9s, j&rsquo;ai test\u00e9 plusieurs choses:<\/p>\n<ol>\n<li>Configuration de la datasource, entre autres activer le cache des prepared statement qui est d\u00e9sactiv\u00e9 par d\u00e9faut en MySQL mais activ\u00e9 en Postgres (voir <a href=\"https:\/\/github.com\/brettwooldridge\/HikariCP\/wiki\/MySQL-Configuration\">ici<\/a> pour r\u00e9f\u00e9rence). <strong>Aucun changement<\/strong>.<\/li>\n<li>Augmenter la taille du <code>pollSize<\/code> pour avoir des batch de plus grande taille (250). <strong>Aucun changement<\/strong>.<\/li>\n<li>Baisser la taille du <code>pollSize<\/code>, pour avoir des commits de plus petite taille (10). <strong>Pire!<\/strong>.<\/li>\n<\/ol>\n<p>J&rsquo;ai alors demand\u00e9 \u00e0 Claude ce qu&rsquo;il en pensait et il m&rsquo;a r\u00e9pondu :<\/p>\n<blockquote>\n  La valeur par d\u00e9faut de <code>sync_binlog=1<\/code> de MySQL impose un <code>fsync<\/code> synchrone du binlog \u00e0 chaque commits, et la conception de la queue JDBC de Kestra effectue des commits extr\u00eamement fr\u00e9quents (environ 52 commits par ex\u00e9cution, soit environ 2 600 commits\/seconde lors d\u2019un test de performance de 6 minutes avec 18 000 ex\u00e9cutions), car le traitement des messages s\u2019effectue au sein de la m\u00eame transaction que chaque cycle de requ\u00eatage de la file d\u2019attente. Par d\u00e9faut, Postgres effectue un fsync du WAL par commit et ne dispose pas de deuxi\u00e8me journal ; MySQL en effectue deux (redo log + bin log).\n<\/blockquote>\n<p>Pour r\u00e9sumer, MySQL est configur\u00e9 par d\u00e9faut pour faire deux fsync (appel syst\u00e8m pour synchroniser sur disque les \u00e9critures de fichiers) par commit alors que Postgres n&rsquo;en fait qu&rsquo;un. Le deuxi\u00e8me est li\u00e9 au binlog utilis\u00e9 pour le point-in-time recovery et la r\u00e9plications entre r\u00e9plicas, l\u00e0 o\u00f9 le redo log est propre au moteur de stockage de MySQL (InnoDB ici), le binlog est identique quel qu&rsquo;il soit.<\/p>\n<p>En d\u00e9sactivant le binlog (<code>--skip-log-bin<\/code>) les performances sont \u00e0 parit\u00e9 entre MySQL et Postgres ! :tada:<\/p>\n<p>Mais en production, d\u00e9sactiver totalement le binlog n&rsquo;est pas une bonne id\u00e9e, on peut par contre s\u00e9lectionner ce qui doit \u00eatre stock\u00e9 dans le binlog (via <code>binlog_row_image<\/code>) ou la fr\u00e9quence d&rsquo;\u00e9criture (via <code>sync_binlog<\/code>).<\/p>\n<p>Configurer <code>binlog_row_image<\/code> \u00e0 <code>MINIMAL<\/code> va cr\u00e9er des \u00e9v\u00e8nements plus petits dans le binlog, baissant donc le nombre d&rsquo;octets \u00e9crit par seconde. Les tests ne se sont pas montr\u00e9s concluants, c&rsquo;est r\u00e9ellement le nombre d&rsquo;\u00e9criture qui pose probl\u00e8me, pas leur taille, ce qui est coh\u00e9rent avec les performance moins bonne quand on baisse le <code>pollSize<\/code>.<\/p>\n<p>Configurer <code>sync_binlog<\/code> \u00e0 25 va \u00e9crire le binlog sur disque tous les 25 commits au lieu de chaque commit. Le redo log d&rsquo;InnoDB reste synchronis\u00e9 \u00e0 chaque commit : un crash de MySQL ne fait perdre aucune donn\u00e9e. En cas de crash de l&rsquo;OS ou de la machine, jusqu&rsquo;\u00e0 24 commits peuvent manquer dans le binlog (mais pas dans la base), ce qui n&rsquo;a d&rsquo;impact que pour la r\u00e9plication et le point-in-time recovery.<\/p>\n<p>Les performances sont alors proches de celles de Postgres. C&rsquo;est un compromis entre performance et durabilit\u00e9 du binlog : \u00e0 vous de choisir la valeur selon votre tol\u00e9rance, mais la configuration du binlog est un classique du tuning MySQL.<\/p>\n<p>Pour conclure, j&rsquo;avais un a priori n\u00e9gatif sur les performances de MySQL mais sachant que certains gros utilisateurs de Kestra (des milliers de flows, des millions d&rsquo;executions par mois) l&rsquo;utilisaient je me suis dit qu&rsquo;il fallait analyser \u00e7a. Et comme je ne suis pas expert, la petite aide de Claude m&rsquo;a permis de pointer dans la bonne direction et d&rsquo;en apprendre un peu plus sur le fonctionnement interne de MySQL.<\/p>","protected":false},"excerpt":{"rendered":"<p>Kestra supporte entre autre Posstgres et MySQL comme base de donn\u00e9es, nos benchmarks internes montraient que Postgres \u00e9tait beaucoup plus performant que MySQL pour faire tourner Kestra. Nous conseillons donc g\u00e9n\u00e9ralement de faire fonctionner Kestra en production avec Postgres. Lors de nos benchmarks, Postgres support 4000 executions\/mn avec une latence de 370ms pour nos flow type, avec une latence autour de 130ms pour un lancement unique. MySQL de son c\u00f4t\u00e9 n&rsquo;arrive m\u00eame pas \u00e0 soutenir 1000 executions\/mn et a une&#8230;<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/performance-base-de-donnees-postgres-vs-mysql\/\">Lire la suite<span class=\"screen-reader-text\"> Lire la suite<\/span><\/a><\/p><\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federated","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_members_access_role":[],"_members_access_error":""},"categories":[9],"tags":[203,211,236,159],"class_list":["post-2196","post","type-post","status-publish","format-standard","hentry","category-informatique","tag-database","tag-kestra","tag-mysql","tag-performance"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Kestra supporte entre autre Posstgres et MySQL comme base de donn\u00e9es, nos benchmarks internes montraient que Postgres \u00e9tait beaucoup plus performant que MySQL pour faire tourner Kestra. Nous conseillons donc g\u00e9n\u00e9ralement de faire fonctionner Kestra en production avec Postgres. Lors de nos benchmarks, Postgres support 4000 executions\/mn avec une latence de 370ms pour nos flow\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"admin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/performance-base-de-donnees-postgres-vs-mysql\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Loic&#039;s Blog | Blog traitant du d\u00e9velopement informatique et de quelques autres sujets (voyages, \u00e9cologie, ...).\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Performance base de donn\u00e9es : Postgres vs. MySQL | Loic&#039;s Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"Kestra supporte entre autre Posstgres et MySQL comme base de donn\u00e9es, nos benchmarks internes montraient que Postgres \u00e9tait beaucoup plus performant que MySQL pour faire tourner Kestra. Nous conseillons donc g\u00e9n\u00e9ralement de faire fonctionner Kestra en production avec Postgres. Lors de nos benchmarks, Postgres support 4000 executions\/mn avec une latence de 370ms pour nos flow\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/performance-base-de-donnees-postgres-vs-mysql\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-10-07T13:52:14+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-10-08T14:43:31+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Performance base de donn\u00e9es : Postgres vs. MySQL | Loic&#039;s Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Kestra supporte entre autre Posstgres et MySQL comme base de donn\u00e9es, nos benchmarks internes montraient que Postgres \u00e9tait beaucoup plus performant que MySQL pour faire tourner Kestra. Nous conseillons donc g\u00e9n\u00e9ralement de faire fonctionner Kestra en production avec Postgres. Lors de nos benchmarks, Postgres support 4000 executions\/mn avec une latence de 370ms pour nos flow\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/informatique\\\/performance-base-de-donnees-postgres-vs-mysql\\\/#article\",\"name\":\"Performance base de donn\\u00e9es : Postgres vs. MySQL | Loic's Blog\",\"headline\":\"Performance base de donn\\u00e9es : Postgres vs. MySQL\",\"author\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/author\\\/admin\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/#organization\"},\"datePublished\":\"2026-10-07T15:52:14+02:00\",\"dateModified\":\"2026-10-08T16:43:31+02:00\",\"inLanguage\":\"fr-FR\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/informatique\\\/performance-base-de-donnees-postgres-vs-mysql\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/informatique\\\/performance-base-de-donnees-postgres-vs-mysql\\\/#webpage\"},\"articleSection\":\"informatique, database, kestra, mysql, performance\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/informatique\\\/performance-base-de-donnees-postgres-vs-mysql\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/category\\\/informatique\\\/#listItem\",\"name\":\"informatique\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/category\\\/informatique\\\/#listItem\",\"position\":2,\"name\":\"informatique\",\"item\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/category\\\/informatique\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/informatique\\\/performance-base-de-donnees-postgres-vs-mysql\\\/#listItem\",\"name\":\"Performance base de donn\\u00e9es : Postgres vs. MySQL\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/informatique\\\/performance-base-de-donnees-postgres-vs-mysql\\\/#listItem\",\"position\":3,\"name\":\"Performance base de donn\\u00e9es : Postgres vs. MySQL\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/category\\\/informatique\\\/#listItem\",\"name\":\"informatique\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/#organization\",\"name\":\"Loic's Blog\",\"description\":\"Blog traitant du d\\u00e9velopement informatique et de quelques autres sujets (voyages, \\u00e9cologie, ...).\",\"url\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/author\\\/admin\\\/#author\",\"url\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/author\\\/admin\\\/\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/informatique\\\/performance-base-de-donnees-postgres-vs-mysql\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2b39eb909797d1241a4191e41489c1fbe0b3d68daf31e77779b61ce2f4422b52?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"admin\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/informatique\\\/performance-base-de-donnees-postgres-vs-mysql\\\/#webpage\",\"url\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/informatique\\\/performance-base-de-donnees-postgres-vs-mysql\\\/\",\"name\":\"Performance base de donn\\u00e9es : Postgres vs. MySQL | Loic's Blog\",\"description\":\"Kestra supporte entre autre Posstgres et MySQL comme base de donn\\u00e9es, nos benchmarks internes montraient que Postgres \\u00e9tait beaucoup plus performant que MySQL pour faire tourner Kestra. Nous conseillons donc g\\u00e9n\\u00e9ralement de faire fonctionner Kestra en production avec Postgres. Lors de nos benchmarks, Postgres support 4000 executions\\\/mn avec une latence de 370ms pour nos flow\",\"inLanguage\":\"fr-FR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/informatique\\\/performance-base-de-donnees-postgres-vs-mysql\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/author\\\/admin\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/author\\\/admin\\\/#author\"},\"datePublished\":\"2026-10-07T15:52:14+02:00\",\"dateModified\":\"2026-10-08T16:43:31+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/\",\"name\":\"Loic's Blog\",\"description\":\"Blog traitant du d\\u00e9velopement informatique et de quelques autres sujets (voyages, \\u00e9cologie, ...).\",\"inLanguage\":\"fr-FR\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Performance base de donn\u00e9es : Postgres vs. MySQL | Loic's Blog","description":"Kestra supporte entre autre Posstgres et MySQL comme base de donn\u00e9es, nos benchmarks internes montraient que Postgres \u00e9tait beaucoup plus performant que MySQL pour faire tourner Kestra. Nous conseillons donc g\u00e9n\u00e9ralement de faire fonctionner Kestra en production avec Postgres. Lors de nos benchmarks, Postgres support 4000 executions\/mn avec une latence de 370ms pour nos flow","canonical_url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/performance-base-de-donnees-postgres-vs-mysql\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/performance-base-de-donnees-postgres-vs-mysql\/#article","name":"Performance base de donn\u00e9es : Postgres vs. MySQL | Loic's Blog","headline":"Performance base de donn\u00e9es : Postgres vs. MySQL","author":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/author\/admin\/#author"},"publisher":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/#organization"},"datePublished":"2026-10-07T15:52:14+02:00","dateModified":"2026-10-08T16:43:31+02:00","inLanguage":"fr-FR","mainEntityOfPage":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/performance-base-de-donnees-postgres-vs-mysql\/#webpage"},"isPartOf":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/performance-base-de-donnees-postgres-vs-mysql\/#webpage"},"articleSection":"informatique, database, kestra, mysql, performance"},{"@type":"BreadcrumbList","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/performance-base-de-donnees-postgres-vs-mysql\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/#listItem","position":1,"name":"Home","item":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/#listItem","name":"informatique"}},{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/#listItem","position":2,"name":"informatique","item":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/performance-base-de-donnees-postgres-vs-mysql\/#listItem","name":"Performance base de donn\u00e9es : Postgres vs. MySQL"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/performance-base-de-donnees-postgres-vs-mysql\/#listItem","position":3,"name":"Performance base de donn\u00e9es : Postgres vs. MySQL","previousItem":{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/#listItem","name":"informatique"}}]},{"@type":"Organization","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/#organization","name":"Loic's Blog","description":"Blog traitant du d\u00e9velopement informatique et de quelques autres sujets (voyages, \u00e9cologie, ...).","url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/"},{"@type":"Person","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/author\/admin\/#author","url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/author\/admin\/","name":"admin","image":{"@type":"ImageObject","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/performance-base-de-donnees-postgres-vs-mysql\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/2b39eb909797d1241a4191e41489c1fbe0b3d68daf31e77779b61ce2f4422b52?s=96&d=mm&r=g","width":96,"height":96,"caption":"admin"}},{"@type":"WebPage","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/performance-base-de-donnees-postgres-vs-mysql\/#webpage","url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/performance-base-de-donnees-postgres-vs-mysql\/","name":"Performance base de donn\u00e9es : Postgres vs. MySQL | Loic's Blog","description":"Kestra supporte entre autre Posstgres et MySQL comme base de donn\u00e9es, nos benchmarks internes montraient que Postgres \u00e9tait beaucoup plus performant que MySQL pour faire tourner Kestra. Nous conseillons donc g\u00e9n\u00e9ralement de faire fonctionner Kestra en production avec Postgres. Lors de nos benchmarks, Postgres support 4000 executions\/mn avec une latence de 370ms pour nos flow","inLanguage":"fr-FR","isPartOf":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/#website"},"breadcrumb":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/performance-base-de-donnees-postgres-vs-mysql\/#breadcrumblist"},"author":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/author\/admin\/#author"},"creator":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/author\/admin\/#author"},"datePublished":"2026-10-07T15:52:14+02:00","dateModified":"2026-10-08T16:43:31+02:00"},{"@type":"WebSite","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/#website","url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/","name":"Loic's Blog","description":"Blog traitant du d\u00e9velopement informatique et de quelques autres sujets (voyages, \u00e9cologie, ...).","inLanguage":"fr-FR","publisher":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/#organization"}}]},"og:locale":"fr_FR","og:site_name":"Loic's Blog | Blog traitant du d\u00e9velopement informatique et de quelques autres sujets (voyages, \u00e9cologie, ...).","og:type":"article","og:title":"Performance base de donn\u00e9es : Postgres vs. MySQL | Loic's Blog","og:description":"Kestra supporte entre autre Posstgres et MySQL comme base de donn\u00e9es, nos benchmarks internes montraient que Postgres \u00e9tait beaucoup plus performant que MySQL pour faire tourner Kestra. Nous conseillons donc g\u00e9n\u00e9ralement de faire fonctionner Kestra en production avec Postgres. Lors de nos benchmarks, Postgres support 4000 executions\/mn avec une latence de 370ms pour nos flow","og:url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/performance-base-de-donnees-postgres-vs-mysql\/","article:published_time":"2026-10-07T13:52:14+00:00","article:modified_time":"2026-10-08T14:43:31+00:00","twitter:card":"summary","twitter:title":"Performance base de donn\u00e9es : Postgres vs. MySQL | Loic's Blog","twitter:description":"Kestra supporte entre autre Posstgres et MySQL comme base de donn\u00e9es, nos benchmarks internes montraient que Postgres \u00e9tait beaucoup plus performant que MySQL pour faire tourner Kestra. Nous conseillons donc g\u00e9n\u00e9ralement de faire fonctionner Kestra en production avec Postgres. Lors de nos benchmarks, Postgres support 4000 executions\/mn avec une latence de 370ms pour nos flow"},"aioseo_meta_data":{"post_id":"2196","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2026-09-16 11:03:58","updated":"2026-10-08 14:43:31","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/\" title=\"informatique\">informatique<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tPerformance base de donn\u00e9es : Postgres vs. MySQL\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/"},{"label":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},{"label":"Performance base de donn\u00e9es : Postgres vs. MySQL","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/performance-base-de-donnees-postgres-vs-mysql\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":1650,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/le-profiler-sql-de-visualvm\/","url_meta":{"origin":2196,"position":0},"title":"Le profiler SQL de VisualVM","author":"admin","date":"mardi  4 avril 2023","format":false,"excerpt":"Il y a peu, j'ai d\u00e9couvert le profiler SQL de VisualVM et je me suis dit que je devais aussi vous le faire d\u00e9couvrir ;). VisualVM est un outil qui fournit une interface visuelle pour afficher des informations d\u00e9taill\u00e9es sur les applications qui s'ex\u00e9cutent sur une machine virtuelle Java (JVM).\u2026","rel":"","context":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/loicmathieu.fr\/wordpress\/wp-content\/uploads\/Capture-decran-du-2023-04-03-14-17-25-1024x624.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/loicmathieu.fr\/wordpress\/wp-content\/uploads\/Capture-decran-du-2023-04-03-14-17-25-1024x624.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/loicmathieu.fr\/wordpress\/wp-content\/uploads\/Capture-decran-du-2023-04-03-14-17-25-1024x624.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":1786,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/concevoir-un-saas-multitenant\/","url_meta":{"origin":2196,"position":1},"title":"Concevoir un SaaS multitenant","author":"admin","date":"mardi  5 mars 2024","format":false,"excerpt":"Cet article se repose sur mon talk Concevoir un SaaS multitenant fait \u00e0 Cloud Nord le 12 octobre 2023. Kestra est une plate-forme d\u2019orchestration et de scheduling de donn\u00e9e hautement scalabe, qui cr\u00e9e, ex\u00e9cute, planifie et surveille des millions de pipelines complexes. Pour une introduction \u00e0 Kestra, vous pouvez lire\u2026","rel":"","context":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/loicmathieu.fr\/wordpress\/wp-content\/uploads\/kestra-software-architecture-1024x576.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/loicmathieu.fr\/wordpress\/wp-content\/uploads\/kestra-software-architecture-1024x576.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/loicmathieu.fr\/wordpress\/wp-content\/uploads\/kestra-software-architecture-1024x576.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":2027,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/implementer-un-lock-en-elasticsearch\/","url_meta":{"origin":2196,"position":2},"title":"Impl\u00e9menter un lock en Elasticsearch","author":"admin","date":"vendredi 28 novembre 2025","format":false,"excerpt":"A Kestra, la plateforme d'orchestration et de scheduling de workflow pour laquelle je travaille, nous avons deux impl\u00e9mentations de repository: JDBC (avec support pour H2, MySQL et Postgres) et Elasticsearch. En JDBC, locker un enregistrement pour le traiter est assez facile : 1. SELECT FOR UPDATE ... WHERE ... va\u2026","rel":"","context":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1847,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/jooq-tip-ne-convertissez-pas-jsonb-en-string\/","url_meta":{"origin":2196,"position":3},"title":"jOOQ tip: ne convertissez pas JSONB en String","author":"admin","date":"mercredi 23 octobre 2024","format":false,"excerpt":"Il y a quelques semaines, en investiguant de possibles am\u00e9liorations de performance pour le backend JDBC de Kestra, j'ai remarqu\u00e9 qu'une m\u00e9thode qu'on utilisait pour mapper une entit\u00e9 \u00e0 persister en base de donn\u00e9es dans sa repr\u00e9sentation JSONB prenait beaucoup de temps dans nos profiles CPU. Dans le flame graph\u2026","rel":"","context":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/loicmathieu.fr\/wordpress\/wp-content\/uploads\/366507373-c44206a5-0085-43cc-902e-97756319b0ea-1024x737.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/loicmathieu.fr\/wordpress\/wp-content\/uploads\/366507373-c44206a5-0085-43cc-902e-97756319b0ea-1024x737.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/loicmathieu.fr\/wordpress\/wp-content\/uploads\/366507373-c44206a5-0085-43cc-902e-97756319b0ea-1024x737.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":1611,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/introduction-a-kestra\/","url_meta":{"origin":2196,"position":4},"title":"Introduction \u00e0 Kestra","author":"admin","date":"lundi  6 mars 2023","format":false,"excerpt":"Kestra est un orchestrateur et scheduler de donn\u00e9e open source. Avec Kestra, les workflows de donn\u00e9es, appel\u00e9s flows, utilisent le format YAML et sont ex\u00e9cut\u00e9s par son moteur via un appel API, l'interface utilisateur, ou un trigger (webhook, schedule, SQL query, Pub\/Sub message, \u2026). Les notions importantes de Kestra sont\u2026","rel":"","context":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/loicmathieu.fr\/wordpress\/wp-content\/uploads\/kestra-01-1024x267.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/loicmathieu.fr\/wordpress\/wp-content\/uploads\/kestra-01-1024x267.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/loicmathieu.fr\/wordpress\/wp-content\/uploads\/kestra-01-1024x267.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":1005,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/quarkus-et-testcontainers\/","url_meta":{"origin":2196,"position":5},"title":"Quarkus et Testcontainers","author":"admin","date":"lundi 17 f\u00e9vrier 2020","format":false,"excerpt":"Si vous ne connaissait pas Quarkus, voici un article d'introduction : Zoom sur Quarkus. Quarkus offre un support des Tests Unitaires (TU) avec JUnit 5 via l'annotation @QuarkusTest, la documentation du support des TU de Quarkus peut \u00eatre trouv\u00e9 ici. Voici un exemple de TU tir\u00e9 du Quickstart Hibernate ORM\u2026","rel":"","context":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/posts\/2196","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/comments?post=2196"}],"version-history":[{"count":7,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/posts\/2196\/revisions"}],"predecessor-version":[{"id":2205,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/posts\/2196\/revisions\/2205"}],"wp:attachment":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/media?parent=2196"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/categories?post=2196"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/tags?post=2196"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}