<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Commentaires pour dbnewz</title>
	<atom:link href="http://www.dbnewz.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dbnewz.com</link>
	<description>le blog français sur les SGBD - MySQL, Oracle et plus...</description>
	<lastBuildDate>Tue, 23 Feb 2010 10:20:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Commentaires sur 15 secondes pour installer une réplication MySQL avec MySQL Sandbox, pari tenu ? par Modifier le prompt du client mysql &#171; dbnewz</title>
		<link>http://www.dbnewz.com/2008/10/10/15-secondes-pour-installer-une-replication-mysql-avec-mysql-sandbox-pari-tenu/comment-page-1/#comment-1232</link>
		<dc:creator>Modifier le prompt du client mysql &#171; dbnewz</dc:creator>
		<pubDate>Tue, 23 Feb 2010 10:20:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbnewz.com/?p=75#comment-1232</guid>
		<description>[...] que si vous êtes un utilisateur de MySQL Sandbox, le prompt sera automatiquement et intelligemment modifié pour que vous ne soyez pas perdu parmi [...]</description>
		<content:encoded><![CDATA[<p>[...] que si vous êtes un utilisateur de MySQL Sandbox, le prompt sera automatiquement et intelligemment modifié pour que vous ne soyez pas perdu parmi [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Sauvegarder ses procédures stockées avec mysqldump par Razafinjato Michael</title>
		<link>http://www.dbnewz.com/2009/04/07/sauvegarder-ses-procedures-stockees-avec-mysqldump/comment-page-1/#comment-1224</link>
		<dc:creator>Razafinjato Michael</dc:creator>
		<pubDate>Mon, 15 Feb 2010 06:54:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbnewz.com/?p=246#comment-1224</guid>
		<description>Bjr, je vous remercie pour avoir crée ce site enrichissant.
j&#039;avais pas mal de problemes pour l&#039;export import de données mais maintenant c&#039;est dans la poche.
</description>
		<content:encoded><![CDATA[<p>Bjr, je vous remercie pour avoir crée ce site enrichissant.<br />
j&#8217;avais pas mal de problemes pour l&#8217;export import de données mais maintenant c&#8217;est dans la poche.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Clés étrangères et actions de suppression/mise à jour par vivanno.com::aggregator &#187; Archive &#187; Clés étrangères et actions</title>
		<link>http://www.dbnewz.com/2010/01/13/cles-etrangeres-et-actions/comment-page-1/#comment-1216</link>
		<dc:creator>vivanno.com::aggregator &#187; Archive &#187; Clés étrangères et actions</dc:creator>
		<pubDate>Mon, 18 Jan 2010 14:21:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbnewz.com/?p=468#comment-1216</guid>
		<description>[...] &#160;Cl&#233;s &#233;trang&#232;res et actions de suppression-mise &#224; jour () [...]</description>
		<content:encoded><![CDATA[<p>[...] &nbsp;Cl&eacute;s &eacute;trang&egrave;res et actions de suppression-mise &agrave; jour () [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Les covering index, de la théorie à la pratique avec MyISAM et InnoDB par Olivier DASINI</title>
		<link>http://www.dbnewz.com/2008/11/20/les-covering-index-de-la-theorie-a-la-pratique-avec-myisam-et-innodb/comment-page-1/#comment-1211</link>
		<dc:creator>Olivier DASINI</dc:creator>
		<pubDate>Tue, 08 Dec 2009 16:55:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbnewz.com/?p=134#comment-1211</guid>
		<description>Salut, 
effectivement Arnaud à raison, l&#039;ordre de l&#039;index est important. Son premier élément doit être le champ du group by.
++

Olivier</description>
		<content:encoded><![CDATA[<p>Salut,<br />
effectivement Arnaud à raison, l&#8217;ordre de l&#8217;index est important. Son premier élément doit être le champ du group by.<br />
++</p>
<p>Olivier</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Les covering index, de la théorie à la pratique avec MyISAM et InnoDB par Arnaud</title>
		<link>http://www.dbnewz.com/2008/11/20/les-covering-index-de-la-theorie-a-la-pratique-avec-myisam-et-innodb/comment-page-1/#comment-1210</link>
		<dc:creator>Arnaud</dc:creator>
		<pubDate>Tue, 08 Dec 2009 07:54:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbnewz.com/?p=134#comment-1210</guid>
		<description>Bonjour,

Effectivement c&#039;est interessant, a premiere vue j&#039;aurais sans doute placé mes index comme tu l&#039;as fait... Peux-tu poster ici un show create table from videos ainsi qu&#039;un show index from videos ?

Apres avoir relu l&#039;exemple que tu cites sur le blog d&#039;Olivier, je me rends compte que lui a finalement retenu un index où le group by (le responsable de ta table temp) est en premiere position, donc en toute &quot;logique&quot; je te conseillerais d&#039;appliquer la meme idee histoire de voir ? Tente un index sur (genre, enable, type) par exemple.

L&#039;idee du show index est aussi de voir si vraiment tu as besoin d&#039;un index sur les 3 colonnes... Si par exemple &quot;enable&quot; est tres peu selectif contrairement a &quot;type&quot;, je pense que tu peux te permettre de n&#039;en garder que deux, a voir.

Par ailleurs un test que je ferai aussi histoire de voir c&#039;est un alter table videos order by genre, afin d&#039;avoir ma table deja toute ordonnee selon le genre (si tu es en myisam). Je ne sais pas si l&#039;optimiseur s&#039;en rendrait compte et eliminerait le tri que tu constates. (A ne tenter que si ta table n&#039;est pas enorme, a des fins de test).

Tiens nous au courant...</description>
		<content:encoded><![CDATA[<p>Bonjour,</p>
<p>Effectivement c&#8217;est interessant, a premiere vue j&#8217;aurais sans doute placé mes index comme tu l&#8217;as fait&#8230; Peux-tu poster ici un show create table from videos ainsi qu&#8217;un show index from videos ?</p>
<p>Apres avoir relu l&#8217;exemple que tu cites sur le blog d&#8217;Olivier, je me rends compte que lui a finalement retenu un index où le group by (le responsable de ta table temp) est en premiere position, donc en toute &laquo;&nbsp;logique&nbsp;&raquo; je te conseillerais d&#8217;appliquer la meme idee histoire de voir ? Tente un index sur (genre, enable, type) par exemple.</p>
<p>L&#8217;idee du show index est aussi de voir si vraiment tu as besoin d&#8217;un index sur les 3 colonnes&#8230; Si par exemple &laquo;&nbsp;enable&nbsp;&raquo; est tres peu selectif contrairement a &laquo;&nbsp;type&nbsp;&raquo;, je pense que tu peux te permettre de n&#8217;en garder que deux, a voir.</p>
<p>Par ailleurs un test que je ferai aussi histoire de voir c&#8217;est un alter table videos order by genre, afin d&#8217;avoir ma table deja toute ordonnee selon le genre (si tu es en myisam). Je ne sais pas si l&#8217;optimiseur s&#8217;en rendrait compte et eliminerait le tri que tu constates. (A ne tenter que si ta table n&#8217;est pas enorme, a des fins de test).</p>
<p>Tiens nous au courant&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Les covering index, de la théorie à la pratique avec MyISAM et InnoDB par olive</title>
		<link>http://www.dbnewz.com/2008/11/20/les-covering-index-de-la-theorie-a-la-pratique-avec-myisam-et-innodb/comment-page-1/#comment-1209</link>
		<dc:creator>olive</dc:creator>
		<pubDate>Sat, 05 Dec 2009 16:46:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbnewz.com/?p=134#comment-1209</guid>
		<description>bonjour,

merci pour cette explication limpide, j&#039;ai cepandant une question, que se passe t&#039;il dans le cas d&#039;un select à plusieurs WHERE ? du genre:


SELECT genre, count(*) as c FROM `videos` WHERE videos.enable=1 AND videos.type=0 Group by genre


si je place un index composé comme suit:
alter table videos add index Idx_enable_type_genre(enable, type, genre)

j&#039;ai bien un using index mais mysql créé quand même une temporary table or dans cet exemple: http://dasini.net/blog/2009/02/18/optimisation-de-requetes-comprendre-loptimiseur-de-mysql/ on devrait pouvoir arriver à faire sans.

Une petite idée ?</description>
		<content:encoded><![CDATA[<p>bonjour,</p>
<p>merci pour cette explication limpide, j&#8217;ai cepandant une question, que se passe t&#8217;il dans le cas d&#8217;un select à plusieurs WHERE ? du genre:</p>
<p>SELECT genre, count(*) as c FROM `videos` WHERE videos.enable=1 AND videos.type=0 Group by genre</p>
<p>si je place un index composé comme suit:<br />
alter table videos add index Idx_enable_type_genre(enable, type, genre)</p>
<p>j&#8217;ai bien un using index mais mysql créé quand même une temporary table or dans cet exemple: <a href="http://dasini.net/blog/2009/02/18/optimisation-de-requetes-comprendre-loptimiseur-de-mysql/" rel="nofollow">http://dasini.net/blog/2009/02/18/optimisation-de-requetes-comprendre-loptimiseur-de-mysql/</a> on devrait pouvoir arriver à faire sans.</p>
<p>Une petite idée ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Comment réécrire une requête SQL ? Partie 1 par stephane</title>
		<link>http://www.dbnewz.com/2009/11/26/que-signifie-reecrire-une-requete-sql/comment-page-1/#comment-1208</link>
		<dc:creator>stephane</dc:creator>
		<pubDate>Thu, 03 Dec 2009 16:47:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbnewz.com/?p=406#comment-1208</guid>
		<description>Oui dans le cas des clauses OR, l&#039;optimiseur est embêté car il ne peut utiliser qu&#039;un seul index à la fois...index qui ne sera donc pas pertinent pour l&#039;ensemble des OR. D&#039;où le full table scan.

En utilisant des UNION comme tu le dis, on évite les full table scan si les colonnes sur lesquelles portent les OR ont des index. En contrepartie, on crée une table temporaire à cause des UNION.

A partir de MySQL 5.0, il n&#039;y a en principe plus ce problème car l&#039;optimiseur sait combiner dans ce cas particulier plusieurs index. On voit alors dans le EXPLAIN un affichage du type :
type: index_merge
key: idx_pw,idx_ph,idx_pc
...
Extra: Using sort_union(idx_pw,idx_ph,idx_pc); Using where

Ca pourra être l&#039;objet d&#039;un prochain post !</description>
		<content:encoded><![CDATA[<p>Oui dans le cas des clauses OR, l&#8217;optimiseur est embêté car il ne peut utiliser qu&#8217;un seul index à la fois&#8230;index qui ne sera donc pas pertinent pour l&#8217;ensemble des OR. D&#8217;où le full table scan.</p>
<p>En utilisant des UNION comme tu le dis, on évite les full table scan si les colonnes sur lesquelles portent les OR ont des index. En contrepartie, on crée une table temporaire à cause des UNION.</p>
<p>A partir de MySQL 5.0, il n&#8217;y a en principe plus ce problème car l&#8217;optimiseur sait combiner dans ce cas particulier plusieurs index. On voit alors dans le EXPLAIN un affichage du type :<br />
type: index_merge<br />
key: idx_pw,idx_ph,idx_pc<br />
&#8230;<br />
Extra: Using sort_union(idx_pw,idx_ph,idx_pc); Using where</p>
<p>Ca pourra être l&#8217;objet d&#8217;un prochain post !</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Comment réécrire une requête SQL ? Partie 1 par Xavier</title>
		<link>http://www.dbnewz.com/2009/11/26/que-signifie-reecrire-une-requete-sql/comment-page-1/#comment-1207</link>
		<dc:creator>Xavier</dc:creator>
		<pubDate>Mon, 30 Nov 2009 11:53:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbnewz.com/?p=406#comment-1207</guid>
		<description>Dans le même genre, il y a les clauses OR:

select titi, tata from table where cond1 or cond2 or cond3;

Visiblement, on peut gagner en réécrivant la requête comme suit:

select titi, tata from table where cond1 UNION \
select titi, tata from table where cond2 UNION \
select titi, tata from table where cond3;

Visiblement, mysql est trop vite tenté par un full table scan sinon.</description>
		<content:encoded><![CDATA[<p>Dans le même genre, il y a les clauses OR:</p>
<p>select titi, tata from table where cond1 or cond2 or cond3;</p>
<p>Visiblement, on peut gagner en réécrivant la requête comme suit:</p>
<p>select titi, tata from table where cond1 UNION \<br />
select titi, tata from table where cond2 UNION \<br />
select titi, tata from table where cond3;</p>
<p>Visiblement, mysql est trop vite tenté par un full table scan sinon.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Comment réécrire une requête SQL ? Partie 1 par Arnaud</title>
		<link>http://www.dbnewz.com/2009/11/26/que-signifie-reecrire-une-requete-sql/comment-page-1/#comment-1191</link>
		<dc:creator>Arnaud</dc:creator>
		<pubDate>Fri, 27 Nov 2009 07:39:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbnewz.com/?p=406#comment-1191</guid>
		<description>Sympa ton astuce, à garder en mémoire !</description>
		<content:encoded><![CDATA[<p>Sympa ton astuce, à garder en mémoire !</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur mysqlslap et supersmack, deux outils de benchmark pour MySQL par Comment réécrire une requête SQL ? Partie 1 &#171; dbnewz</title>
		<link>http://www.dbnewz.com/2008/07/07/mysqlslap-et-supersmack-deux-outils-de-benchmark-pour-mysql/comment-page-1/#comment-1189</link>
		<dc:creator>Comment réécrire une requête SQL ? Partie 1 &#171; dbnewz</dc:creator>
		<pubDate>Thu, 26 Nov 2009 21:04:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbnewz.com/?p=53#comment-1189</guid>
		<description>[...] Cette table a été peuplée avec 500 000 enregistrements grâce à supersmack. [...]</description>
		<content:encoded><![CDATA[<p>[...] Cette table a été peuplée avec 500 000 enregistrements grâce à supersmack. [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
