{"id":1095,"date":"2025-08-18T07:13:39","date_gmt":"2025-08-18T05:13:39","guid":{"rendered":"https:\/\/www.innospira.fr\/?p=1095"},"modified":"2025-08-19T11:34:12","modified_gmt":"2025-08-19T09:34:12","slug":"comment-optimiser-ses-requetes-sql","status":"publish","type":"post","link":"https:\/\/www.innospira.fr\/index.php\/2025\/08\/18\/comment-optimiser-ses-requetes-sql\/","title":{"rendered":"Comment optimiser ses requ\u00eates SQL (et dire adieu \u00e0 la lenteur)"},"content":{"rendered":"\n<p>Pour bien optimiser des requ\u00eates SQL, il est n\u00e9cessaire de bien comprendre ce qu&rsquo;il se passe lorsque l&rsquo;on ex\u00e9cute une requ\u00eate. On verra ensuite quelques leviers simples, pour am\u00e9liorer les performances de tes requ\u00eates.<\/p>\n\n\n\n<div class=\"wp-block-uagb-container uagb-block-1a34ad79 alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<div class=\"wp-block-uagb-call-to-action uagb-block-5be54738 wp-block-button\"><div class=\"uagb-cta__wrap\"><h2 class=\"uagb-cta__title\">Comprendre la performance web<\/h2><p class=\"uagb-cta__desc\">Si tes requ\u00eates sont d\u00e9j\u00e0 rapides, n&rsquo;h\u00e9site pas \u00e0 consulter l&rsquo;article d\u00e9di\u00e9 pour am\u00e9liorer les performances de ton application. Tu y verras plus clair sur les diff\u00e9rentes m\u00e9triques et comprendre comment identifier ce qui ralenti le chargement de ta page web.<\/p><\/div><div class=\"uagb-cta__buttons\"><a href=\"https:\/\/www.innospira.fr\/index.php\/2025\/07\/18\/comment-ameliorer-les-performances-de-ton-application-web\" class=\"uagb-cta__button-link-wrapper wp-block-button__link\" target=\"_self\" rel=\"noopener noreferrer\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\"><path d=\"M504.3 273.6l-112.1 104c-6.992 6.484-17.18 8.218-25.94 4.406c-8.758-3.812-14.42-12.45-14.42-21.1L351.9 288H32C14.33 288 .0002 273.7 .0002 255.1S14.33 224 32 224h319.9l0-72c0-9.547 5.66-18.19 14.42-22c8.754-3.809 18.95-2.075 25.94 4.41l112.1 104C514.6 247.9 514.6 264.1 504.3 273.6z\"><\/path><\/svg>J&rsquo;y vais !<\/a><\/div><\/div>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">Quel est le processus d&rsquo;envoi d&rsquo;une requ\u00eate SQL?<\/h2>\n\n\n\n<p>Pour mieux comprendre ce qui se passe lors de l&rsquo;ex\u00e9cution d&rsquo;une requ\u00eate SQL, et surtout identifier o\u00f9 le temps est d\u00e9pens\u00e9, regardons son fonctionnement.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Envoi de la requ\u00eate<\/strong>\n<ul class=\"wp-block-list\">\n<li><em>L&rsquo;utilisateur envoie une requ\u00eate SQL \u00e0 la base de donn\u00e9es pour demander ou modifier des informations.<\/em><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Analyse de la syntaxe<\/strong>\n<ul class=\"wp-block-list\">\n<li><em>Le syst\u00e8me v\u00e9rifie si la requ\u00eate est bien formul\u00e9e. Si une virgule est mal plac\u00e9 par exemple, il y a une erreur.<\/em><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>V\u00e9rification des \u00e9l\u00e9ments demand\u00e9s<\/strong>\n<ul class=\"wp-block-list\">\n<li><em>Le syst\u00e8me regarde si les tables et les colonnes mentionn\u00e9es existent bien.<\/em><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Optimisation du plan d&rsquo;ex\u00e9cution<\/strong>\n<ul class=\"wp-block-list\">\n<li><em>Avant d&rsquo;ex\u00e9cuter la requ\u00eate, la base de donn\u00e9es cherche la mani\u00e8re la plus rapide de le faire. En utilisant un index ou en parcourant toute une table, par exemple.<\/em><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Ex\u00e9cution de la requ\u00eate<\/strong>\n<ul class=\"wp-block-list\">\n<li><em>La base de donn\u00e9es effectue les op\u00e9rations demand\u00e9es : chercher, trier, calculer, ins\u00e9rer, etc.<\/em><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Envoi du r\u00e9sultat<\/strong>\n<ul class=\"wp-block-list\">\n<li><em>Le r\u00e9sultat est renvoy\u00e9 : cela peut \u00eatre une liste de r\u00e9sultats, un message de confirmation ou une simple information.<\/em><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>Bien s\u00fbr, il s&rsquo;agit d&rsquo;une version r\u00e9sum\u00e9e et simplifi\u00e9e d&rsquo;un processus d&rsquo;ex\u00e9cution d&rsquo;une requ\u00eate SQL. Il existe des variations en fonction du type de la base de donn\u00e9es, mais cela permet de se faire une id\u00e9e \ud83d\ude09.<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-cd0bcb94 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\" srcset=\"https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/07\/Execution_requete_SQL.webp ,https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/07\/Execution_requete_SQL.webp 780w, https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/07\/Execution_requete_SQL.webp 360w\" sizes=\"auto, (max-width: 480px) 150px\" src=\"https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/07\/Execution_requete_SQL.webp\" alt=\"Ex\u00e9cution d'une requ\u00eate SQL\" class=\"uag-image-1101\" width=\"690\" height=\"261\" title=\"Execution_requete_SQL\" loading=\"lazy\" role=\"img\"\/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Un exemple pour bien comprendre <\/h3>\n\n\n\n<p>Si tu souhaites ex\u00e9cuter la requ\u00eate suivante, pour ressortir les noms des clients qui sont situ\u00e9s en France. Voici la requ\u00eate et ses \u00e9tapes d&rsquo;ex\u00e9cution.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7\">SQL<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>SELECT nom FROM clients WHERE pays='France';<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">SELECT<\/span><span style=\"color: #D4D4D4\"> nom <\/span><span style=\"color: #569CD6\">FROM<\/span><span style=\"color: #D4D4D4\"> clients <\/span><span style=\"color: #569CD6\">WHERE<\/span><span style=\"color: #D4D4D4\"> pays=<\/span><span style=\"color: #CE9178\">&#39;France&#39;<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Requ\u00eate envoy\u00e9e<\/strong>\n<ul class=\"wp-block-list\">\n<li><em>Envoi de la requ\u00eate \u00e0 la base de donn\u00e9es.<\/em><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>V\u00e9rification de la syntaxe<\/strong>\n<ul class=\"wp-block-list\">\n<li><em>Est-ce que la requ\u00eate est bien \u00e9crite ? Les mots-cl\u00e9s sont-ils valides (SELECT, FROM, WHERE, etc.) ?<\/em><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>V\u00e9rification des tables et colonnes<\/strong>\n<ul class=\"wp-block-list\">\n<li><em>Est-ce que la table <mark style=\"background-color:#ffe5c4;color:#000000\" class=\"has-inline-color\"><code>clients<\/code><\/mark> existe ? Est-ce qu\u2019il y a une colonne <code><mark style=\"background-color:#ffe5c4\" class=\"has-inline-color\">nom<\/mark><\/code> et une colonne <code><mark style=\"background-color:#ffe5c4\" class=\"has-inline-color\">pays<\/mark><\/code> ?<\/em><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Optimisation<\/strong>\n<ul class=\"wp-block-list\">\n<li><em>Le syst\u00e8me choisit le chemin le plus rapide : par exemple, utiliser un index sur <code><mark style=\"background-color:#ffe5c4\" class=\"has-inline-color\">pays<\/mark><\/code> pour \u00e9viter de lire toute la table<\/em> (si l&rsquo;index existe).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Ex\u00e9cution<\/strong>\n<ul class=\"wp-block-list\">\n<li><em>La base de donn\u00e9es va chercher les donn\u00e9es demand\u00e9es.<\/em><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>R\u00e9sultat envoy\u00e9<\/strong>\n<ul class=\"wp-block-list\">\n<li><em>La r\u00e9ponse (la liste des noms des clients fran\u00e7ais) est renvoy\u00e9e.<\/em><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>G\u00e9n\u00e9ralement, pour des tables contenant peu de donn\u00e9es, l&rsquo;enchainement de ses \u00e9tapes prendra peu de temps (quelques millisecondes).<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">Les actions \u00e0 mettre en place pour optimiser ses requ\u00eates SQL<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">La r\u00e8gle d&rsquo;or, collecter seulement les champs n\u00e9cessaires<\/h3>\n\n\n\n<p>S&rsquo;il y a bien une r\u00e8gle n\u00b01 pour optimiser ses requ\u00eates SQL, c&rsquo;est bien celle-ci. <strong>Ne pas s\u00e9lectionner tous les champs<\/strong>. En effet, on peut avoir tendance \u00e0 faire un <mark style=\"background-color:#ffe5c4\" class=\"has-inline-color\">SELECT *<\/mark>, plut\u00f4t que s\u00e9lectionner uniquement les colonnes utiles. C&rsquo;est souvent par facilit\u00e9, donc c&rsquo;est OK pour tester, mais seulement pour tester et v\u00e9rifier les r\u00e9sultats.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7\">SQL<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>SELECT * FROM clients; \/* Feignantise = pas bien \u274c *\/\nSELECT prenom, nom FROM clients; \/* Pr\u00e9cis = bien \u2705 *\/<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">SELECT<\/span><span style=\"color: #D4D4D4\"> * <\/span><span style=\"color: #569CD6\">FROM<\/span><span style=\"color: #D4D4D4\"> clients; <\/span><span style=\"color: #6A9955\">\/* Feignantise = pas bien \u274c *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">SELECT<\/span><span style=\"color: #D4D4D4\"> prenom, nom <\/span><span style=\"color: #569CD6\">FROM<\/span><span style=\"color: #D4D4D4\"> clients; <\/span><span style=\"color: #6A9955\">\/* Pr\u00e9cis = bien \u2705 *\/<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Bien s\u00fbr, il existe des cas d&rsquo;usage o\u00f9 on a besoin de toutes les colonnes. Dans ce cas l\u00e0, on peut se permettre de tout s\u00e9lectionner.<\/p>\n\n\n\n<p>Moins de colonnes \u00e0 r\u00e9cup\u00e9rer = moins de donn\u00e9es \u00e0 r\u00e9cup\u00e9rer (surtout sur des tables \/ colonnes volumineuses).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Archiver ou purger pour avoir des tables avec des tailles raisonnables<\/h3>\n\n\n\n<p>Je consid\u00e8re qu&rsquo;une table est volumineuse \u00e0 partir de + d&rsquo;un million de lignes. Si une table d\u00e9passe cette taille, il est l\u00e9gitime de se poser la question : est-ce que j&rsquo;ai besoin de toutes ces lignes ? Si oui, on va archiver des donn\u00e9es. Et dans le cas contraire, on va simplement purger ce dont on n&rsquo;a plus besoin.<\/p>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-863d9dcd wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\" srcset=\"https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/07\/processus_archivage.webp ,https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/07\/processus_archivage.webp 780w, https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/07\/processus_archivage.webp 360w\" sizes=\"auto, (max-width: 480px) 150px\" src=\"https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/07\/processus_archivage.webp\" alt=\"Archiver ou purger pour optimiser ses requ\u00eates SQL\" class=\"uag-image-1104\" width=\"561\" height=\"594\" title=\"processus_archivage\" loading=\"lazy\" role=\"img\"\/><\/figure><\/div>\n\n\n\n<p>Naturellement, moins une table est volumineuse, plus le temps d&rsquo;ex\u00e9cution est rapide. Surtout si la requ\u00eate doit parcourir l&rsquo;ensemble de la table lors de l&rsquo;execution.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00c9viter de parcourir l&rsquo;ensemble de la table<\/h3>\n\n\n\n<p>Pour faire un test concret, j&rsquo;ai cr\u00e9\u00e9 une table contenant 1 000 000 lignes. De cette fa\u00e7on, nous pourrons mesurer plus facilement l&rsquo;impact et l&rsquo;utilit\u00e9 d&rsquo;un index sur une table volumineuse. La table est r\u00e9partie comme cela:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Environ 100 000 entr\u00e9es avec un pays correspondant \u00e0 <em>France<\/em><\/li>\n\n\n\n<li>Environ 900 000 entr\u00e9es avec un pays correspond \u00e0 <em>Autre<\/em><\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-uagb-image uagb-block-46b4221a wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\" srcset=\"https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/07\/bdd_table_clients_1M-1024x435.webp ,https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/07\/bdd_table_clients_1M.webp 780w, https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/07\/bdd_table_clients_1M.webp 360w\" sizes=\"auto, (max-width: 480px) 150px\" src=\"https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/07\/bdd_table_clients_1M-1024x435.webp\" alt=\"Table contenant 1 million de lignes\" class=\"uag-image-1107\" width=\"1024\" height=\"435\" title=\"bdd_table_clients_1M\" loading=\"lazy\" role=\"img\"\/><\/figure><\/div>\n\n\n\n<p>Sur cette table, nous avons uniquement un index sur la colonne <em><mark style=\"background-color:#ffe5c4\" class=\"has-inline-color\">id<\/mark><\/em>. On va donc faire une premi\u00e8re requ\u00eate en filtrant sur le pays et on fera la m\u00eame en ayant cr\u00e9\u00e9 l&rsquo;index.<br>La requ\u00eate retournera donc tout le temps ~100 000 r\u00e9sultats.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7\">SQL<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>SELECT nom FROM clients WHERE pays = 'France'<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">SELECT<\/span><span style=\"color: #D4D4D4\"> nom <\/span><span style=\"color: #569CD6\">FROM<\/span><span style=\"color: #D4D4D4\"> clients <\/span><span style=\"color: #569CD6\">WHERE<\/span><span style=\"color: #D4D4D4\"> pays = <\/span><span style=\"color: #CE9178\">&#39;France&#39;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<figure class=\"wp-block-table aligncenter has-medium-font-size\" style=\"margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-center\" data-align=\"center\">Index existant<\/th><th class=\"has-text-align-center\" data-align=\"center\">Type<\/th><th class=\"has-text-align-center\" data-align=\"center\">Temps d&rsquo;ex\u00e9cution moyen<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\">Non<\/td><td class=\"has-text-align-center\" data-align=\"center\">All<\/td><td class=\"has-text-align-center\" data-align=\"center\">7,5 secondes \u274c<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Oui<\/td><td class=\"has-text-align-center\" data-align=\"center\">Ref<\/td><td class=\"has-text-align-center\" data-align=\"center\">0,8 secondes \u2705<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Pour obtenir un temps d&rsquo;ex\u00e9cution repr\u00e9sentatif, j&rsquo;ai fais une moyenne sur une dizaine d&rsquo;ex\u00e9cutions. On voit bien ici qu&rsquo;avec un index, le temps est largement am\u00e9lior\u00e9 \u263a\ufe0f !<\/p>\n\n\n\n<div class=\"wp-block-uagb-icon-list uagb-block-800c0222\"><div class=\"uagb-icon-list__wrap\">\n<div class=\"wp-block-uagb-icon-list-child uagb-block-7fe02357\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\"><path d=\"M500.3 443.7l-119.7-119.7c27.22-40.41 40.65-90.9 33.46-144.7C401.8 87.79 326.8 13.32 235.2 1.723C99.01-15.51-15.51 99.01 1.724 235.2c11.6 91.64 86.08 166.7 177.6 178.9c53.8 7.189 104.3-6.236 144.7-33.46l119.7 119.7c15.62 15.62 40.95 15.62 56.57 0C515.9 484.7 515.9 459.3 500.3 443.7zM79.1 208c0-70.58 57.42-128 128-128s128 57.42 128 128c0 70.58-57.42 128-128 128S79.1 278.6 79.1 208z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\"><strong>ALL<\/strong> signifie que la base scanne <strong>toutes les lignes<\/strong> de la table une par une (full scan), m\u00eame si une condition <code>WHERE<\/code> est pr\u00e9sente.<\/span><\/div>\n\n\n\n<div class=\"wp-block-uagb-icon-list-child uagb-block-0e5918fa\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 384 512\"><path d=\"M240.5 224H352C365.3 224 377.3 232.3 381.1 244.7C386.6 257.2 383.1 271.3 373.1 280.1L117.1 504.1C105.8 513.9 89.27 514.7 77.19 505.9C65.1 497.1 60.7 481.1 66.59 467.4L143.5 288H31.1C18.67 288 6.733 279.7 2.044 267.3C-2.645 254.8 .8944 240.7 10.93 231.9L266.9 7.918C278.2-1.92 294.7-2.669 306.8 6.114C318.9 14.9 323.3 30.87 317.4 44.61L240.5 224z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\"><strong>REF <\/strong>signifie que la base utilise un <strong>index<\/strong> pour acc\u00e9der directement aux lignes qui correspondent \u00e0 la condition, donc c\u2019est beaucoup plus rapide.<\/span><\/div>\n<\/div><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Pourquoi on ne cr\u00e9\u00e9 pas d&rsquo;index sur toutes les colonnes ?<\/h4>\n\n\n\n<p>Maintenant qu&rsquo;on sait qu&rsquo;un index am\u00e9liore grandement les performances, on aurait envie de cr\u00e9er des index sur plusieurs colonnes. Cependant, il y a deux contraintes majeures, \u00e0 cr\u00e9er des index:<\/p>\n\n\n\n<div class=\"wp-block-uagb-icon-list uagb-block-fb640d0f\"><div class=\"uagb-icon-list__wrap\">\n<div class=\"wp-block-uagb-icon-list-child uagb-block-69891b94\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 288h-416C21.5 288 0 309.5 0 336v96C0 458.5 21.5 480 48 480h416c26.5 0 48-21.5 48-48v-96C512 309.5 490.5 288 464 288zM320 416c-17.62 0-32-14.38-32-32s14.38-32 32-32s32 14.38 32 32S337.6 416 320 416zM416 416c-17.62 0-32-14.38-32-32s14.38-32 32-32s32 14.38 32 32S433.6 416 416 416zM464 32h-416C21.5 32 0 53.5 0 80v192.4C13.41 262.3 29.92 256 48 256h416c18.08 0 34.59 6.254 48 16.41V80C512 53.5 490.5 32 464 32z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\">Chaque index consomme de l&rsquo;espace disque.<\/span><\/div>\n\n\n\n<div class=\"wp-block-uagb-icon-list-child uagb-block-cdc98825\"><span class=\"uagb-icon-list__source-wrap\"><svg xmlns=\"https:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 576 512\"><path d=\"M466.7 352L320 205.3L214.6 310.6C202.1 323.1 181.9 323.1 169.4 310.6L9.372 150.6C-3.124 138.1-3.124 117.9 9.372 105.4C21.87 92.88 42.13 92.88 54.63 105.4L191.1 242.7L297.4 137.4C309.9 124.9 330.1 124.9 342.6 137.4L512 306.7V223.1C512 206.3 526.3 191.1 544 191.1C561.7 191.1 576 206.3 576 223.1V384C576 401.7 561.7 416 544 416H384C366.3 416 352 401.7 352 384C352 366.3 366.3 352 384 352L466.7 352z\"><\/path><\/svg><\/span><span class=\"uagb-icon-list__label\">Chaque index peut ralentir les op\u00e9rations d&rsquo;\u00e9criture (INSERT, UPDATE, DELETE).<\/span><\/div>\n<\/div><\/div>\n\n\n\n<p>Il faut donc trouver le bon compromis et bien s\u00e9lectionner les index \u00e0 cr\u00e9er. Travaille uniquement sur les requ\u00eates d\u00e9grad\u00e9es (&gt; \u00e0 1 seconde).<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\"><strong>En r\u00e9sum\u00e9 : des requ\u00eates SQL rapides, c\u2019est possible !<\/strong><\/h2>\n\n\n\n<p>Tu sais maintenant ce qui se passe sous le capot lors de l&rsquo;ex\u00e9cution d\u2019une requ\u00eate SQL, et surtout <strong>quels r\u00e9flexes adopter pour \u00e9viter les lenteurs<\/strong>. Avant de valider ta requ\u00eate, pense \u00e0 :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>V\u00e9rifier sa structure<\/strong> (jointures, sous-requ\u00eates, clauses mal optimis\u00e9es).<\/li>\n\n\n\n<li><strong>Exploiter les index<\/strong> (ou en cr\u00e9er si n\u00e9cessaire).<\/li>\n\n\n\n<li><strong>Surveiller la taille de tes tables<\/strong> (et leur croissance).<\/li>\n<\/ul>\n\n\n\n<p>Avec ces bases, tu as d\u00e9j\u00e0 de quoi booster les performances SQL de ton application. Ce sujet t&rsquo;int\u00e9resse ? Dis-le moi en commentaire : on peut creuser ensemble les optimisations avanc\u00e9es, les outils d\u2019analyse, ou m\u00eame des cas concrets \u263a\ufe0f.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pour bien optimiser des requ\u00eates SQL, il est n\u00e9cessaire de bien comprendre ce qu&rsquo;il se passe lorsque l&rsquo;on ex\u00e9cute une [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1129,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"linkedin_posted":true,"linkedin_posted_date":"2025-10-25 23:54:48","footnotes":""},"categories":[25],"tags":[32],"class_list":["post-1095","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ia-developpement","tag-developpement"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Comment optimiser ses requ\u00eates SQL (et dire adieu \u00e0 la lenteur)<\/title>\n<meta name=\"description\" content=\"Comment rendre tes requ\u00eates SQL plus rapides gr\u00e2ce \u00e0 des optimisations simples : champs utiles, index, et gestion des tables.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.innospira.fr\/index.php\/2025\/08\/18\/comment-optimiser-ses-requetes-sql\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comment optimiser ses requ\u00eates SQL (et dire adieu \u00e0 la lenteur)\" \/>\n<meta property=\"og:description\" content=\"Comment rendre tes requ\u00eates SQL plus rapides gr\u00e2ce \u00e0 des optimisations simples : champs utiles, index, et gestion des tables.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innospira.fr\/index.php\/2025\/08\/18\/comment-optimiser-ses-requetes-sql\/\" \/>\n<meta property=\"og:site_name\" content=\"InnoSpira\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-18T05:13:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-19T09:34:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/08\/Performance-SQL.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"J\u00e9r\u00e9mie\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"J\u00e9r\u00e9mie\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\\\/\\\/www.innospira.fr\\\/index.php\\\/2025\\\/08\\\/18\\\/comment-optimiser-ses-requetes-sql\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innospira.fr\\\/index.php\\\/2025\\\/08\\\/18\\\/comment-optimiser-ses-requetes-sql\\\/\"},\"author\":{\"name\":\"J\u00e9r\u00e9mie\",\"@id\":\"https:\\\/\\\/www.innospira.fr\\\/#\\\/schema\\\/person\\\/9df0acbd7573e147b4ffc81c2fa32662\"},\"headline\":\"Comment optimiser ses requ\u00eates SQL (et dire adieu \u00e0 la lenteur)\",\"datePublished\":\"2025-08-18T05:13:39+00:00\",\"dateModified\":\"2025-08-19T09:34:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innospira.fr\\\/index.php\\\/2025\\\/08\\\/18\\\/comment-optimiser-ses-requetes-sql\\\/\"},\"wordCount\":1195,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.innospira.fr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innospira.fr\\\/index.php\\\/2025\\\/08\\\/18\\\/comment-optimiser-ses-requetes-sql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innospira.fr\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/Performance-SQL.webp\",\"keywords\":[\"d\u00e9veloppement\"],\"articleSection\":[\"IA et D\u00e9veloppement\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innospira.fr\\\/index.php\\\/2025\\\/08\\\/18\\\/comment-optimiser-ses-requetes-sql\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innospira.fr\\\/index.php\\\/2025\\\/08\\\/18\\\/comment-optimiser-ses-requetes-sql\\\/\",\"url\":\"https:\\\/\\\/www.innospira.fr\\\/index.php\\\/2025\\\/08\\\/18\\\/comment-optimiser-ses-requetes-sql\\\/\",\"name\":\"Comment optimiser ses requ\u00eates SQL (et dire adieu \u00e0 la lenteur)\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innospira.fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innospira.fr\\\/index.php\\\/2025\\\/08\\\/18\\\/comment-optimiser-ses-requetes-sql\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innospira.fr\\\/index.php\\\/2025\\\/08\\\/18\\\/comment-optimiser-ses-requetes-sql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innospira.fr\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/Performance-SQL.webp\",\"datePublished\":\"2025-08-18T05:13:39+00:00\",\"dateModified\":\"2025-08-19T09:34:12+00:00\",\"description\":\"Comment rendre tes requ\u00eates SQL plus rapides gr\u00e2ce \u00e0 des optimisations simples : champs utiles, index, et gestion des tables.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innospira.fr\\\/index.php\\\/2025\\\/08\\\/18\\\/comment-optimiser-ses-requetes-sql\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innospira.fr\\\/index.php\\\/2025\\\/08\\\/18\\\/comment-optimiser-ses-requetes-sql\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.innospira.fr\\\/index.php\\\/2025\\\/08\\\/18\\\/comment-optimiser-ses-requetes-sql\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innospira.fr\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/Performance-SQL.webp\",\"contentUrl\":\"https:\\\/\\\/www.innospira.fr\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/Performance-SQL.webp\",\"width\":1280,\"height\":720,\"caption\":\"Optimiser tes requ\u00eates SQL\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innospira.fr\\\/index.php\\\/2025\\\/08\\\/18\\\/comment-optimiser-ses-requetes-sql\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.innospira.fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Comment optimiser ses requ\u00eates SQL (et dire adieu \u00e0 la lenteur)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innospira.fr\\\/#website\",\"url\":\"https:\\\/\\\/www.innospira.fr\\\/\",\"name\":\"InnoSpira\",\"description\":\"D\u00e9veloppez votre activit\u00e9, innovez !\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.innospira.fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innospira.fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.innospira.fr\\\/#organization\",\"name\":\"InnoSpira\",\"url\":\"https:\\\/\\\/www.innospira.fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.innospira.fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.innospira.fr\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/cropped-innospira_mini.png\",\"contentUrl\":\"https:\\\/\\\/www.innospira.fr\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/cropped-innospira_mini.png\",\"width\":634,\"height\":211,\"caption\":\"InnoSpira\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innospira.fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/youtube.com\\\/@innospira\",\"https:\\\/\\\/www.tiktok.com\\\/@innospira\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innospira.fr\\\/#\\\/schema\\\/person\\\/9df0acbd7573e147b4ffc81c2fa32662\",\"name\":\"J\u00e9r\u00e9mie\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/79bb7d75560df4f10cfac00fb18946028e219cf4d7f9cd8e684a91135bf7c8cb?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/79bb7d75560df4f10cfac00fb18946028e219cf4d7f9cd8e684a91135bf7c8cb?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/79bb7d75560df4f10cfac00fb18946028e219cf4d7f9cd8e684a91135bf7c8cb?s=96&d=mm&r=g\",\"caption\":\"J\u00e9r\u00e9mie\"},\"sameAs\":[\"http:\\\/\\\/www.innospira.fr\"],\"url\":\"https:\\\/\\\/www.innospira.fr\\\/index.php\\\/author\\\/nazario\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Comment optimiser ses requ\u00eates SQL (et dire adieu \u00e0 la lenteur)","description":"Comment rendre tes requ\u00eates SQL plus rapides gr\u00e2ce \u00e0 des optimisations simples : champs utiles, index, et gestion des tables.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.innospira.fr\/index.php\/2025\/08\/18\/comment-optimiser-ses-requetes-sql\/","og_locale":"fr_FR","og_type":"article","og_title":"Comment optimiser ses requ\u00eates SQL (et dire adieu \u00e0 la lenteur)","og_description":"Comment rendre tes requ\u00eates SQL plus rapides gr\u00e2ce \u00e0 des optimisations simples : champs utiles, index, et gestion des tables.","og_url":"https:\/\/www.innospira.fr\/index.php\/2025\/08\/18\/comment-optimiser-ses-requetes-sql\/","og_site_name":"InnoSpira","article_published_time":"2025-08-18T05:13:39+00:00","article_modified_time":"2025-08-19T09:34:12+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/08\/Performance-SQL.webp","type":"image\/webp"}],"author":"J\u00e9r\u00e9mie","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"J\u00e9r\u00e9mie","Dur\u00e9e de lecture estim\u00e9e":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/www.innospira.fr\/index.php\/2025\/08\/18\/comment-optimiser-ses-requetes-sql\/#article","isPartOf":{"@id":"https:\/\/www.innospira.fr\/index.php\/2025\/08\/18\/comment-optimiser-ses-requetes-sql\/"},"author":{"name":"J\u00e9r\u00e9mie","@id":"https:\/\/www.innospira.fr\/#\/schema\/person\/9df0acbd7573e147b4ffc81c2fa32662"},"headline":"Comment optimiser ses requ\u00eates SQL (et dire adieu \u00e0 la lenteur)","datePublished":"2025-08-18T05:13:39+00:00","dateModified":"2025-08-19T09:34:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innospira.fr\/index.php\/2025\/08\/18\/comment-optimiser-ses-requetes-sql\/"},"wordCount":1195,"commentCount":0,"publisher":{"@id":"https:\/\/www.innospira.fr\/#organization"},"image":{"@id":"https:\/\/www.innospira.fr\/index.php\/2025\/08\/18\/comment-optimiser-ses-requetes-sql\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/08\/Performance-SQL.webp","keywords":["d\u00e9veloppement"],"articleSection":["IA et D\u00e9veloppement"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innospira.fr\/index.php\/2025\/08\/18\/comment-optimiser-ses-requetes-sql\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innospira.fr\/index.php\/2025\/08\/18\/comment-optimiser-ses-requetes-sql\/","url":"https:\/\/www.innospira.fr\/index.php\/2025\/08\/18\/comment-optimiser-ses-requetes-sql\/","name":"Comment optimiser ses requ\u00eates SQL (et dire adieu \u00e0 la lenteur)","isPartOf":{"@id":"https:\/\/www.innospira.fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innospira.fr\/index.php\/2025\/08\/18\/comment-optimiser-ses-requetes-sql\/#primaryimage"},"image":{"@id":"https:\/\/www.innospira.fr\/index.php\/2025\/08\/18\/comment-optimiser-ses-requetes-sql\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/08\/Performance-SQL.webp","datePublished":"2025-08-18T05:13:39+00:00","dateModified":"2025-08-19T09:34:12+00:00","description":"Comment rendre tes requ\u00eates SQL plus rapides gr\u00e2ce \u00e0 des optimisations simples : champs utiles, index, et gestion des tables.","breadcrumb":{"@id":"https:\/\/www.innospira.fr\/index.php\/2025\/08\/18\/comment-optimiser-ses-requetes-sql\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innospira.fr\/index.php\/2025\/08\/18\/comment-optimiser-ses-requetes-sql\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.innospira.fr\/index.php\/2025\/08\/18\/comment-optimiser-ses-requetes-sql\/#primaryimage","url":"https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/08\/Performance-SQL.webp","contentUrl":"https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/08\/Performance-SQL.webp","width":1280,"height":720,"caption":"Optimiser tes requ\u00eates SQL"},{"@type":"BreadcrumbList","@id":"https:\/\/www.innospira.fr\/index.php\/2025\/08\/18\/comment-optimiser-ses-requetes-sql\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.innospira.fr\/"},{"@type":"ListItem","position":2,"name":"Comment optimiser ses requ\u00eates SQL (et dire adieu \u00e0 la lenteur)"}]},{"@type":"WebSite","@id":"https:\/\/www.innospira.fr\/#website","url":"https:\/\/www.innospira.fr\/","name":"InnoSpira","description":"D\u00e9veloppez votre activit\u00e9, innovez !","publisher":{"@id":"https:\/\/www.innospira.fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innospira.fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.innospira.fr\/#organization","name":"InnoSpira","url":"https:\/\/www.innospira.fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.innospira.fr\/#\/schema\/logo\/image\/","url":"https:\/\/www.innospira.fr\/wp-content\/uploads\/2024\/10\/cropped-innospira_mini.png","contentUrl":"https:\/\/www.innospira.fr\/wp-content\/uploads\/2024\/10\/cropped-innospira_mini.png","width":634,"height":211,"caption":"InnoSpira"},"image":{"@id":"https:\/\/www.innospira.fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/youtube.com\/@innospira","https:\/\/www.tiktok.com\/@innospira"]},{"@type":"Person","@id":"https:\/\/www.innospira.fr\/#\/schema\/person\/9df0acbd7573e147b4ffc81c2fa32662","name":"J\u00e9r\u00e9mie","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/79bb7d75560df4f10cfac00fb18946028e219cf4d7f9cd8e684a91135bf7c8cb?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/79bb7d75560df4f10cfac00fb18946028e219cf4d7f9cd8e684a91135bf7c8cb?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/79bb7d75560df4f10cfac00fb18946028e219cf4d7f9cd8e684a91135bf7c8cb?s=96&d=mm&r=g","caption":"J\u00e9r\u00e9mie"},"sameAs":["http:\/\/www.innospira.fr"],"url":"https:\/\/www.innospira.fr\/index.php\/author\/nazario\/"}]}},"uagb_featured_image_src":{"full":["https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/08\/Performance-SQL.webp",1280,720,false],"thumbnail":["https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/08\/Performance-SQL-150x150.webp",150,150,true],"medium":["https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/08\/Performance-SQL-300x169.webp",300,169,true],"medium_large":["https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/08\/Performance-SQL-768x432.webp",768,432,true],"large":["https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/08\/Performance-SQL-1024x576.webp",1024,576,true],"1536x1536":["https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/08\/Performance-SQL.webp",1280,720,false],"2048x2048":["https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/08\/Performance-SQL.webp",1280,720,false],"mailpoet_newsletter_max":["https:\/\/www.innospira.fr\/wp-content\/uploads\/2025\/08\/Performance-SQL.webp",1280,720,false]},"uagb_author_info":{"display_name":"J\u00e9r\u00e9mie","author_link":"https:\/\/www.innospira.fr\/index.php\/author\/nazario\/"},"uagb_comment_info":0,"uagb_excerpt":"Pour bien optimiser des requ\u00eates SQL, il est n\u00e9cessaire de bien comprendre ce qu&rsquo;il se passe lorsque l&rsquo;on ex\u00e9cute une [&hellip;]","_links":{"self":[{"href":"https:\/\/www.innospira.fr\/index.php\/wp-json\/wp\/v2\/posts\/1095","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innospira.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innospira.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innospira.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innospira.fr\/index.php\/wp-json\/wp\/v2\/comments?post=1095"}],"version-history":[{"count":11,"href":"https:\/\/www.innospira.fr\/index.php\/wp-json\/wp\/v2\/posts\/1095\/revisions"}],"predecessor-version":[{"id":1132,"href":"https:\/\/www.innospira.fr\/index.php\/wp-json\/wp\/v2\/posts\/1095\/revisions\/1132"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innospira.fr\/index.php\/wp-json\/wp\/v2\/media\/1129"}],"wp:attachment":[{"href":"https:\/\/www.innospira.fr\/index.php\/wp-json\/wp\/v2\/media?parent=1095"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innospira.fr\/index.php\/wp-json\/wp\/v2\/categories?post=1095"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innospira.fr\/index.php\/wp-json\/wp\/v2\/tags?post=1095"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}