<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>dasini.net - Journal d'un expert MySQL &#187; bench</title>
	<atom:link href="http://dasini.net/blog/category/bench/feed/" rel="self" type="application/rss+xml" />
	<link>http://dasini.net/blog</link>
	<description>Repousser les frontières de la connaissance</description>
	<lastBuildDate>Thu, 02 Feb 2012 09:06:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Améliorations de l&#8217;optimiseur dans MariaDB</title>
		<link>http://dasini.net/blog/2012/01/09/ameliorations-de-loptimiseur-dans-mariadb/</link>
		<comments>http://dasini.net/blog/2012/01/09/ameliorations-de-loptimiseur-dans-mariadb/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 18:24:08 +0000</pubDate>
		<dc:creator>freshdaz</dc:creator>
				<category><![CDATA[bench]]></category>
		<category><![CDATA[MariaDB]]></category>

		<guid isPermaLink="false">http://dasini.net/blog/?p=1163</guid>
		<description><![CDATA[Les équipes de MariaDB ont énormément travaillées sur l'optimiseur de la version 5.3, notamment en permettant une réelle utilisation des sous-requêtes.

Voici un effet visuel de ces optimisations:

Avec MySQL 5.5, l'utilisation de tables dérivées (type de sous-requêtes dans la clause FROM d'un SELECT), donne le plan d'exécution suivant:]]></description>
			<content:encoded><![CDATA[<p>Les équipes de <a title="MariaDB" href="http://mariadb.org/" target="_blank">MariaDB</a> ont énormément travaillées sur l&#8217;optimiseur de la version <a title="MariaDB 5.3" href="http://downloads.askmonty.org/mariadb/5.3/" target="_blank">5.3</a>, notamment en permettant une réelle<a title="MariaDB 5.3 released as beta " href="http://monty-says.blogspot.com/2011/07/mariadb-53-released-as-beta.html" target="_blank"> utilisation des sous-requêtes</a>.</p>
<p>Voici un effet visuel de ces optimisations:</p>
<p>Avec MySQL 5.5, l&#8217;utilisation de tables dérivées (type de sous-requêtes dans la clause FROM d&#8217;un SELECT), donne le plan d&#8217;exécution suivant:</p>
<p>MySQL-5.5 &gt; EXPLAIN SELECT * FROM (SELECT * FROM (SELECT * FROM City ccc ) cc ) c \G<br />
*************************** 1. row ***************************<br />
id: 1<br />
select_type: PRIMARY<br />
table: &lt;derived2&gt;<br />
type: ALL<br />
possible_keys: NULL<br />
key: NULL<br />
key_len: NULL<br />
ref: NULL<br />
rows: 4079<br />
Extra:<br />
*************************** 2. row ***************************<br />
id: 2<br />
select_type: DERIVED<br />
table: &lt;derived3&gt;<br />
type: ALL<br />
possible_keys: NULL<br />
key: NULL<br />
key_len: NULL<br />
ref: NULL<br />
rows: 4079<br />
Extra:<br />
*************************** 3. row ***************************<br />
id: 3<br />
select_type: DERIVED<br />
table: ccc<br />
type: ALL<br />
possible_keys: NULL<br />
key: NULL<br />
key_len: NULL<br />
ref: NULL<br />
rows: 4079<br />
Extra:</p>
<p>&nbsp;</p>
<p>Le même EXPLAIN avec MariaDB 5.3 donne:<br />
MariaDB-5.3 &gt;  EXPLAIN SELECT * FROM (SELECT * FROM (SELECT * FROM City ccc ) cc ) c \G<br />
*************************** 1. row ***************************<br />
id: 1<br />
select_type: SIMPLE<br />
table: ccc<br />
type: ALL<br />
possible_keys: NULL<br />
key: NULL<br />
key_len: NULL<br />
ref: NULL<br />
rows: 4079<br />
Extra:</p>
<p>L&#8217;optimiseur comprend que les 2 niveaux de &laquo;&nbsp;SELECT * FROM&nbsp;&raquo; ne servent à rien, et réécrit donc la requête.</p>
<p>L’intérêt n&#8217;est heureusement pas que visuel:</p>
<p><strong>Sur MySQL 5.5</strong>:</p>
<p>mysqlslap &#8211;create-schema=world -i10 -q&nbsp;&raquo;SELECT * FROM (SELECT * FROM (SELECT * FROM City ccc ) cc ) c ;&nbsp;&raquo; -S/tmp/mysql_55.sock<br />
Benchmark<br />
Average number of seconds to run all queries: <span style="color: #ff0000;"><strong>0.004 seconds</strong></span></p>
<p>&nbsp;</p>
<p><strong>Sur MariaDB 5.3</strong>:<br />
mysqlslap &#8211;create-schema=world -i10 -q&nbsp;&raquo;SELECT * FROM (SELECT * FROM (SELECT * FROM City ccc ) cc ) c ;&nbsp;&raquo; -S/tmp/mariadb_53.sock<br />
Benchmark<br />
Average number of seconds to run all queries:<span style="color: #ff0000;"> <strong>0.002 seconds</strong></span></p>
<p>Le test étant réalisé sur un petit volume de données, le temps écoulé n&#8217;est pas très important, cependant l&#8217;on peu noter que l&#8217;optimisation apporté par MariaDB,<strong><span style="text-decoration: underline;"> divise le temps d&#8217;exécution par 2</span></strong> dans ce contexte (à conf équivalente, données équivalentes,&#8230;).</p>
<p>&nbsp;</p>
<p>D&#8217;autres tests s&#8217;imposent, mais l&#8217;on peut déjà féliciter les équipes de MariaDB</p>
]]></content:encoded>
			<wfw:commentRss>http://dasini.net/blog/2012/01/09/ameliorations-de-loptimiseur-dans-mariadb/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bench MariaDB  vs MySQL</title>
		<link>http://dasini.net/blog/2010/12/30/bench-mariadb-vs-mysql/</link>
		<comments>http://dasini.net/blog/2010/12/30/bench-mariadb-vs-mysql/#comments</comments>
		<pubDate>Thu, 30 Dec 2010 20:06:57 +0000</pubDate>
		<dc:creator>freshdaz</dc:creator>
				<category><![CDATA[bench]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[MySQL 5]]></category>
		<category><![CDATA[MySQL 5.1]]></category>

		<guid isPermaLink="false">http://dasini.net/blog/?p=1032</guid>
		<description><![CDATA[MariaDB 5.2.4 et MySQL 5.5.8 ont de façon particulièrement significative, de meilleures performances en écritures que MySQL 5.1.53 (avantage à MariaDB 5.2.4).

En ce qui concerne, les lectures, les performances de MariaDB 5.2.4 et de MySQL 5.1.53 sont très proches (léger avantage à MySQL 5.1.53). MySQL 5.5.8 est un peu en retrait.

En fonction des résultats des benchs, mon classement est le suivant :

MariaDB 5.2.4
MySQL 5.5.8
MySQL 5.1.53]]></description>
			<content:encoded><![CDATA[<p>Avec les sorties de <a title="MySQL 5.5 est disponible" href="http://dasini.net/blog/2010/12/15/mysql-5-5-est-disponible/" target="_blank">MySQL 5.5.8</a> et de<a title="MariaDB 5.2.4 est disponible" href="http://dasini.net/blog/2010/12/09/mariadb-5-2-4-et-5-1-53-sont-disponibles/" target="_blank"> MariaDB 5.2.4</a>, l&#8217;écosystème SGBDR open source se retrouve donc avec 3 bases (n&#8217;oublions pas MySQL 5.1.53) en GA. J&#8217;ai eu envi de voir le résultat des améliorations apportées par les équipes  d<a title="MySQL" href="http://www.mysql.com/" target="_blank">&#8216;Oracle</a> sur la première version majeure post rachat (MySQL 5.5.8) et celles apportées par la communauté et les équipes de <a title="Monty program" href="http://askmonty.org/">Monty program</a> pour la version basée sur MySQL 5.1.53  (MariaDB 5.2.4).</p>
<p>De nombreuses optimisations ont eu lieu sur la version MySQL 5.5.8, ainsi que sur le moteur de stockage InnoDB. Idem pour MariaDB et la version InnoDB  de <a title="Percona" href="http://www.percona.com/" target="_blank">Percona</a> qu&#8217;elle embarque (XtraDB).</p>
<p>Un des gros inconvénients des benchs, c&#8217;est qu&#8217;ils ne veulent souvent rien dire dans l&#8217;absolu. En d&#8217;autres termes, le résultat obtenu valide les hypothèses retenues qui ont rarement la chance de s&#8217;appliquer totalement à votre cas d&#8217;utilisation. Mais faut bien essayer de quantifier les choses ! Dans l&#8217;optique d&#8217;avoir un résultat le plus objectif possible, j&#8217;ai effectué mes tests avec 3 outils de bench open source pour bases de données différents:</p>
<ul>
<li><a title="DBT2" href="http://osdldbt.sourceforge.net/#dbt2" target="_blank">DBT2</a></li>
<li><a title="sysbench" href="http://sourceforge.net/projects/sysbench/" target="_blank">sysbench</a></li>
<li><a title="mysqlslap" href="http://dev.mysql.com/doc/refman/5.5/en/mysqlslap.html" target="_blank">mysqlslap</a></li>
</ul>
<p>Les tests comportent des lectures, des écritures et des transactions plus complexes et ils se déroulent seulement sur des table InnoDB.</p>
<p>La configuration des serveurs est très proche mais pas strictement identique car les paramètres ne sont pas tous les mêmes. Elle n&#8217;est pas orientée performances maximale, (ce n&#8217;était pas mon but) mais sécurité des données (plus proche de notre réalité de production).</p>
<p>La machine de test n&#8217;est qu&#8217;un PC (voir configuration ci dessous)</p>
<h1>MySQL 5.1.53 vs MySQL 5.5.8 vs MariaDB 5.2.4</h1>
<h2>Configuration</h2>
<pre># OS: Ubuntu  10.04 LTS</pre>
<pre># Platform: x86_32</pre>
<pre># CPU: Intel Core 2 Duo CPU T9550 @ 2.66GHz (x2)</pre>
<pre># RAM: 3.4GB</pre>
<pre># Disk(s): 1 x ATA Hitachi HTS723216L9A362</pre>
<pre># # Versions : MySQL 5.1.53, MySQL 5.5.8, MariaDB 5.2.4</pre>
<pre># # Moteur : Innodb</pre>
<h2>Résultats</h2>
<p><em><span style="text-decoration: underline;"><strong><span style="color: #000080;">dbt2</span></strong></span></em></p>
<h3>Transactions (plusieurs tables)</h3>
<p><span style="text-decoration: underline;">40 connexions simultanées</span></p>
<p>MySQL 5.5.8 est <strong>19% plus rapide</strong> que MySQL 5.1.53</p>
<p>MariaDB 5.2.4 est <strong>53% plus rapide</strong> que MySQL 5.1.53</p>
<p><span style="text-decoration: underline;">150 connexions simultanées</span></p>
<p>MySQL 5.5.8 est <strong>49% plus rapide</strong> que MySQL 5.1.53</p>
<p>MariaDB 5.2.4 est <strong>59% plus rapide</strong> que MySQL 5.1.53</p>
<p><em><span style="text-decoration: underline;"><strong><span style="color: #000080;">sysbench</span></strong></span></em></p>
<h3>Transactions (1 table)</h3>
<p><span style="text-decoration: underline;">40 connexions simultanées</span></p>
<p>MySQL 5.5.8 est <strong>19</strong><strong>69% plus rapide</strong> que MySQL 5.1.53</p>
<p>MariaDB 5.2.4 est <strong>2</strong><strong>2</strong><strong>71% plus rapide</strong> que MySQL 5.1.53</p>
<p><span style="text-decoration: underline;">150 connexions simultanées</span></p>
<p>MySQL 5.5.8 est 2<strong>87% plus rapide</strong> que MySQL 5.1.53</p>
<p>MariaDB 5.2.4 est 4<strong>27% plus rapide</strong> que MySQL 5.1.53</p>
<h3>Lectures simples</h3>
<p><span style="text-decoration: underline;">40 connexions simultanées</span></p>
<p>MySQL 5.5.8 est <strong>14% moins rapide</strong> que MySQL 5.1.53</p>
<p>MariaDB 5.2.4 est <strong>3% moins rapide</strong> que MySQL 5.1.53</p>
<p><span style="text-decoration: underline;">150 connexions simultanées</span></p>
<p>MySQL 5.5.8 est <strong>15% moins rapide</strong> que MySQL 5.1.53</p>
<p>MariaDB 5.2.4 est <strong>2% moins rapide</strong> que MySQL 5.1.53</p>
<h3><span style="font-family: 'Liberation Sans', sans-serif;">Lectures</span> <span style="font-family: 'Liberation Sans', sans-serif;">complexes</span></h3>
<p><span style="text-decoration: underline;">40 connexions simultanées</span></p>
<p>MySQL 5.5.8 est <strong>12% moins rapide</strong> que MySQL 5.1.53</p>
<p>MariaDB 5.2.4 est <strong>0.7% moins rapide</strong> que MySQL 5.1.53</p>
<p><span style="text-decoration: underline;">150 connexions simultanées</span></p>
<p>MySQL 5.5.8 est <strong>14% moins rapide</strong> que MySQL 5.1.53</p>
<p>MariaDB 5.2.4 est <strong>5% moins rapide</strong> que MySQL 5.1.53</p>
<p><em><span style="text-decoration: underline;"><strong><span style="color: #000080;">mysqlslap</span></strong></span></em></p>
<h3>Update primary key</h3>
<p><span style="text-decoration: underline;">40 connexions simultanées</span></p>
<p>MySQL 5.5.8 est <strong>1793%</strong><strong> fois plus rapide</strong> que MySQL 5.1.53</p>
<p>MariaDB 5.2.4 est <strong>1</strong><strong>954%</strong><strong> fois plus rapide</strong> que MySQL 5.1.53</p>
<p><span style="text-decoration: underline;">150 connexions simultanées</span></p>
<p>MySQL 5.1.53 =&gt; ERROR : Lock wait timeout exceeded; try restarting transaction</p>
<p>MariaDB 5.2.4 est <strong>26%</strong><strong> fois plus rapide</strong> que MySQL 5.5.8</p>
<h3><span style="font-family: 'Liberation Sans', sans-serif;">Insert</span></h3>
<p><span style="text-decoration: underline;">40 connexions simultanées</span></p>
<p>MySQL 5.5.8 est <strong>1595%</strong><strong> fois plus rapide</strong> que MySQL 5.1.53</p>
<p>MariaDB 5.2.4 est <strong>1</strong><strong>731%</strong><strong> fois plus rapide</strong> que MySQL 5.1.53</p>
<p><span style="text-decoration: underline;">150 connexions simultanées</span></p>
<p>MySQL 5.5.8 est <strong>4</strong><strong>106%</strong><strong> fois plus rapid</strong>e que MySQL 5.1.53</p>
<p>MariaDB 5.2.4 est <strong>4</strong><strong>625%</strong><strong> fois plus rapide</strong> que MySQL 5.1.53</p>
<h3><span style="font-family: 'Liberation Sans', sans-serif;">Insert </span><span style="font-family: 'Liberation Sans', sans-serif;">+ Select</span></h3>
<p><span style="text-decoration: underline;">40 connexions simultanées</span></p>
<p>MySQL 5.5.8 est <strong>1</strong><strong>452%</strong><strong> fois plus rapide</strong> que MySQL 5.1.53</p>
<p>MariaDB 5.2.4 est <strong>1</strong><strong>714%</strong><strong> fois plus rapide</strong> que MySQL 5.1.53</p>
<p><span style="text-decoration: underline;">150 connexions simultanées</span></p>
<p>MySQL 5.5.8 et MariaDB 5.2.4 sont <strong>2</strong><strong>400%</strong><strong> fois plus rapide</strong> que MySQL 5.1.53</p>
<h3><span style="font-family: 'Liberation Sans', sans-serif;">Select</span></h3>
<p><span style="text-decoration: underline;">40 connexions simultanées</span></p>
<p>MySQL 5.1.53 est <strong>8% plus rapide</strong> que MariaDB 5.2.4.</p>
<p>MySQL 5.1.53 est <strong>9% plus rapide</strong> que MySQL 5.5.8.</p>
<p><span style="text-decoration: underline;">150 connexions simultanées</span></p>
<p>MySQL 5.1.53 et MariaDB 5.2.4 sont <strong>15% plus rapide</strong> que MySQL 5.5.8.</p>
<h3><span style="font-family: 'Liberation Sans', sans-serif;">Select</span><span style="font-family: 'Liberation Sans', sans-serif;"> </span><span style="font-family: 'Liberation Sans', sans-serif;">on </span><span style="font-family: 'Liberation Sans', sans-serif;">primary key</span></h3>
<p><span style="text-decoration: underline;">40 connexions simultanées</span></p>
<p>MySQL 5.1.53 est <strong>4% </strong><strong>plus rapide</strong> que MariaDB 5.2.4.</p>
<p>MySQL 5.1.53 est <strong>10%</strong><strong> plus rapide</strong> que MySQL 5.5.8.</p>
<p><span style="text-decoration: underline;">150 connexions simultanées</span></p>
<p>MySQL 5.1.53 et MariaDB 5.2.4 sont <strong>7%</strong><strong> plus rapide</strong> que MySQL 5.5.8.</p>
<p><span style="font-size: x-small;"><br />
</span></p>
<h2><span style="font-family: 'Liberation Sans', sans-serif;">Résumé</span></h2>
<p>MariaDB 5.2.4 et MySQL 5.5.8 ont de façon particulièrement significative, de meilleures performances en écritures que MySQL 5.1.53 (avantage à MariaDB 5.2.4).</p>
<p>En ce qui concerne, les lectures, les performances de MariaDB 5.2.4 et de MySQL 5.1.53 sont très proches (léger avantage à MySQL 5.1.53). MySQL 5.5.8 est un peu en retrait.</p>
<p>En fonction des résultats des benchs, mon classement est le suivant :</p>
<ol>
<li>MariaDB 5.2.4</li>
<li>MySQL 5.5.8</li>
<li>MySQL 5.1.53</li>
</ol>
<p>Je dois avouer, que je suis surpris par l&#8217;ampleur des écarts, notamment en écritures ! D&#8217;autres tests seront fait sur une machine plus costaud et dans un environnement plus proche de notre production.</p>
<h2>Fichiers</h2>
<p><a title="configuration MySQL 5.1.53" href="http://dasini.net/blog/wp-includes/pdf/MySQL_vs_MariaDB-conf_MySQL_5.1.53.pdf">Configuration de MySQL 5.1.53</a></p>
<p><a title="Configuration de MySQL 5.5.8" href="http://dasini.net/blog/wp-includes/pdf/MySQL_vs_MariaDB-conf_MySQL_5.5.8.pdf">Configuration de MySQL 5.5.8</a></p>
<p><a title="Configuration MariaDB 5.2.4" href="http://dasini.net/blog/wp-includes/pdf/MySQL_vs_MariaDB-conf_MariaDB_5.2.4.pdf">Configuration de MariaDB 5.2.4</a></p>
<p><a title="Chiffres bruts" href="http://dasini.net/blog/wp-includes/pdf/MySQL_vs_MariaDB-chiffres_bruts.pdf">Résultats brut</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dasini.net/blog/2010/12/30/bench-mariadb-vs-mysql/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Benchmark MySQL 5.4</title>
		<link>http://dasini.net/blog/2009/08/03/benchmark-mysql-5-4/</link>
		<comments>http://dasini.net/blog/2009/08/03/benchmark-mysql-5-4/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 09:05:57 +0000</pubDate>
		<dc:creator>freshdaz</dc:creator>
				<category><![CDATA[bench]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Dimitri KRAVTCHUK]]></category>
		<category><![CDATA[MySQL 5.4]]></category>

		<guid isPermaLink="false">http://dasini.net/blog/?p=703</guid>
		<description><![CDATA[Dimitri KRAVTCHUK nous démontre avec une batterie de tests les évolutions en matière de performance apportées par MySQL 5.4:


    * Huge performance improvement on InnoDB engine!
    * MySQL 5.4.0 /Perf Version seems to be the most performant InnoDB implementation for the moment! (only except on the Read-Only workload @8cores where InnoDB plugin-1.0.3 is leading!)
    * MySQL is outperforming PostgreSQL on my tests now!
    * Regarding scalability, get a look at 8 vs 16 cores graphs, and you'll see it's the big step forward - no performance degradation on 16 cores is a very positive sign! and there is only 3 months distance between tests!
    * LOCK_open needs a fix ASAP! :-)
    * Analyzing my test results, it's too early to say InnoDB is scaling up to 16 cores, but the test results on 16 cores are already outperforming 8 cores, and I'm absolutely sure now - very quickly it'll perform even better! so see you soon! :-))]]></description>
			<content:encoded><![CDATA[<p><a title="Dimitri Kozma" href="http://dimitrik.free.fr/blog/index.html" target="_blank"><span>Dimitri KRAVTCHUK</span></a> nous démontre, avec une batterie de tests, les évolutions en matière de performance apportées par MySQL 5.4:</p>
<ul>
<li><strong>Huge performance</strong> improvement on <strong>InnoDB</strong> engine!</li>
<li> MySQL 5.4.0 /Perf Version seems to be the <strong>most performant InnoDB implementation</strong> for the moment! (only except on the Read-Only workload @8cores where InnoDB plugin-1.0.3 is leading!)</li>
<li> <strong>MySQL is outperforming PostgreSQL</strong> on my tests now!</li>
<li> Regarding scalability, get a look at 8 vs 16 cores graphs, and you&#8217;ll see it&#8217;s the big step forward &#8211; <strong>no performance degradation on 16 cores</strong> is a very positive sign! and there is only 3 months distance between tests!</li>
<li> LOCK_open needs a fix ASAP! <img src='http://dasini.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
<li> Analyzing my test results, it&#8217;s too early to say InnoDB is scaling up to 16 cores, but the test results on 16 cores are already outperforming 8 cores, and I&#8217;m absolutely sure now &#8211; very quickly it&#8217;ll perform even better! so see you soon! <img src='http://dasini.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )</li>
</ul>
<p><a title="    MySQL Performance: MySQL-5.4.0 and other InnoDB engines @dbSTRESS Benchmark (Apr.2009) " href="http://dimitrik.free.fr/db_STRESS_MySQL_540_and_others_Apr2009.html" target="_blank">http://dimitrik.free.fr/db_STRESS_MySQL_540_and_others_Apr2009.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dasini.net/blog/2009/08/03/benchmark-mysql-5-4/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

