<?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>Comments on: Should you move from MyISAM to Innodb ?</title>
	<atom:link href="http://www.mysqlperformanceblog.com/2009/01/12/should-you-move-from-myisam-to-innodb/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mysqlperformanceblog.com/2009/01/12/should-you-move-from-myisam-to-innodb/</link>
	<description>Everything about MySQL Performance</description>
	<lastBuildDate>Sat, 21 Nov 2009 05:23:57 -0800</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: haram</title>
		<link>http://www.mysqlperformanceblog.com/2009/01/12/should-you-move-from-myisam-to-innodb/comment-page-1/#comment-666259</link>
		<dc:creator>haram</dc:creator>
		<pubDate>Sun, 18 Oct 2009 17:43:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=586#comment-666259</guid>
		<description>is there a way to do full text search using InnoDB</description>
		<content:encoded><![CDATA[<p>is there a way to do full text search using InnoDB</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tom</title>
		<link>http://www.mysqlperformanceblog.com/2009/01/12/should-you-move-from-myisam-to-innodb/comment-page-1/#comment-571507</link>
		<dc:creator>Tom</dc:creator>
		<pubDate>Mon, 01 Jun 2009 14:26:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=586#comment-571507</guid>
		<description>To call MyISAM a database is a joke. To have something not crash safe and not supporting ACID transactions and call it &quot;database&quot;, you must have missed something in your education. Better compare it to cache products, and then the speed is not very impressive either. DRAM prices have changed the game in ways the DB industry have yet to fathom. DB devs are years behind in optimizing the sweet DRAM/DISK relation point.</description>
		<content:encoded><![CDATA[<p>To call MyISAM a database is a joke. To have something not crash safe and not supporting ACID transactions and call it &#8220;database&#8221;, you must have missed something in your education. Better compare it to cache products, and then the speed is not very impressive either. DRAM prices have changed the game in ways the DB industry have yet to fathom. DB devs are years behind in optimizing the sweet DRAM/DISK relation point.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shlomi Noach</title>
		<link>http://www.mysqlperformanceblog.com/2009/01/12/should-you-move-from-myisam-to-innodb/comment-page-1/#comment-533196</link>
		<dc:creator>Shlomi Noach</dc:creator>
		<pubDate>Thu, 09 Apr 2009 03:50:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=586#comment-533196</guid>
		<description>@Ed (31)

Why would this be a deal breaker?</description>
		<content:encoded><![CDATA[<p>@Ed (31)</p>
<p>Why would this be a deal breaker?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ed</title>
		<link>http://www.mysqlperformanceblog.com/2009/01/12/should-you-move-from-myisam-to-innodb/comment-page-1/#comment-532736</link>
		<dc:creator>Ed</dc:creator>
		<pubDate>Wed, 08 Apr 2009 16:28:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=586#comment-532736</guid>
		<description>The deal breaker: InnoDB does not support AUTO_INCREMENT in positions other than the 1st.

If you have an app that uses that MyISAM feature porting it to InnoDB can be a major headache.

Example:

#############################################
# MyISAM

CREATE TABLE MyISAM_animals (grp ENUM(&#039;fish&#039;,&#039;mammal&#039;,&#039;bird&#039;) NOT NULL, id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (grp,id))ENGINE=MyISAM;

INSERT INTO MyISAM_animals (grp,name) VALUES (&#039;mammal&#039;,&#039;dog&#039;),(&#039;mammal&#039;,&#039;cat&#039;),(&#039;bird&#039;,&#039;penguin&#039;),(&#039;fish&#039;,&#039;lax&#039;),(&#039;mammal&#039;,&#039;whale&#039;),(&#039;bird&#039;,&#039;ostrich&#039;);

SELECT * FROM MyISAM_animals ORDER BY grp,id;
+--------+----+---------+
&#124; grp    &#124; id &#124; name    &#124;
+--------+----+---------+
&#124; fish   &#124;  1 &#124; lax     &#124;
&#124; mammal &#124;  1 &#124; dog     &#124;
&#124; mammal &#124;  2 &#124; cat     &#124;
&#124; mammal &#124;  3 &#124; whale   &#124;
&#124; bird   &#124;  1 &#124; penguin &#124;
&#124; bird   &#124;  2 &#124; ostrich &#124;
+--------+----+---------+

#############################################
# InnoDB

CREATE TABLE InnoDB_animals (grp ENUM(&#039;fish&#039;,&#039;mammal&#039;,&#039;bird&#039;) NOT NULL, id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (grp,id))ENGINE=InnoDB;
### ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key

CREATE TABLE InnoDB_animals (grp ENUM(&#039;fish&#039;,&#039;mammal&#039;,&#039;bird&#039;) NOT NULL, id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (id,grp))ENGINE=InnoDB;

INSERT INTO InnoDB_animals (grp,name) VALUES (&#039;mammal&#039;,&#039;dog&#039;),(&#039;mammal&#039;,&#039;cat&#039;),(&#039;bird&#039;,&#039;penguin&#039;),(&#039;fish&#039;,&#039;lax&#039;),(&#039;mammal&#039;,&#039;whale&#039;),(&#039;bird&#039;,&#039;ostrich&#039;);

SELECT * FROM InnoDB_animals ORDER BY grp,id;

+--------+----+---------+
&#124; grp    &#124; id &#124; name    &#124;
+--------+----+---------+
&#124; fish   &#124;  4 &#124; lax     &#124;
&#124; mammal &#124;  1 &#124; dog     &#124;
&#124; mammal &#124;  2 &#124; cat     &#124;
&#124; mammal &#124;  5 &#124; whale   &#124;
&#124; bird   &#124;  3 &#124; penguin &#124;
&#124; bird   &#124;  6 &#124; ostrich &#124;
+--------+----+---------+

#############################################</description>
		<content:encoded><![CDATA[<p>The deal breaker: InnoDB does not support AUTO_INCREMENT in positions other than the 1st.</p>
<p>If you have an app that uses that MyISAM feature porting it to InnoDB can be a major headache.</p>
<p>Example:</p>
<p>#############################################<br />
# MyISAM</p>
<p>CREATE TABLE MyISAM_animals (grp ENUM(&#8217;fish&#8217;,'mammal&#8217;,'bird&#8217;) NOT NULL, id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (grp,id))ENGINE=MyISAM;</p>
<p>INSERT INTO MyISAM_animals (grp,name) VALUES (&#8217;mammal&#8217;,'dog&#8217;),(&#8217;mammal&#8217;,'cat&#8217;),(&#8217;bird&#8217;,'penguin&#8217;),(&#8217;fish&#8217;,'lax&#8217;),(&#8217;mammal&#8217;,'whale&#8217;),(&#8217;bird&#8217;,'ostrich&#8217;);</p>
<p>SELECT * FROM MyISAM_animals ORDER BY grp,id;<br />
+&#8212;&#8212;&#8211;+&#8212;-+&#8212;&#8212;&#8212;+<br />
| grp    | id | name    |<br />
+&#8212;&#8212;&#8211;+&#8212;-+&#8212;&#8212;&#8212;+<br />
| fish   |  1 | lax     |<br />
| mammal |  1 | dog     |<br />
| mammal |  2 | cat     |<br />
| mammal |  3 | whale   |<br />
| bird   |  1 | penguin |<br />
| bird   |  2 | ostrich |<br />
+&#8212;&#8212;&#8211;+&#8212;-+&#8212;&#8212;&#8212;+</p>
<p>#############################################<br />
# InnoDB</p>
<p>CREATE TABLE InnoDB_animals (grp ENUM(&#8217;fish&#8217;,'mammal&#8217;,'bird&#8217;) NOT NULL, id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (grp,id))ENGINE=InnoDB;<br />
### ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key</p>
<p>CREATE TABLE InnoDB_animals (grp ENUM(&#8217;fish&#8217;,'mammal&#8217;,'bird&#8217;) NOT NULL, id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (id,grp))ENGINE=InnoDB;</p>
<p>INSERT INTO InnoDB_animals (grp,name) VALUES (&#8217;mammal&#8217;,'dog&#8217;),(&#8217;mammal&#8217;,'cat&#8217;),(&#8217;bird&#8217;,'penguin&#8217;),(&#8217;fish&#8217;,'lax&#8217;),(&#8217;mammal&#8217;,'whale&#8217;),(&#8217;bird&#8217;,'ostrich&#8217;);</p>
<p>SELECT * FROM InnoDB_animals ORDER BY grp,id;</p>
<p>+&#8212;&#8212;&#8211;+&#8212;-+&#8212;&#8212;&#8212;+<br />
| grp    | id | name    |<br />
+&#8212;&#8212;&#8211;+&#8212;-+&#8212;&#8212;&#8212;+<br />
| fish   |  4 | lax     |<br />
| mammal |  1 | dog     |<br />
| mammal |  2 | cat     |<br />
| mammal |  5 | whale   |<br />
| bird   |  3 | penguin |<br />
| bird   |  6 | ostrich |<br />
+&#8212;&#8212;&#8211;+&#8212;-+&#8212;&#8212;&#8212;+</p>
<p>#############################################</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vladimir Rusinov</title>
		<link>http://www.mysqlperformanceblog.com/2009/01/12/should-you-move-from-myisam-to-innodb/comment-page-1/#comment-506265</link>
		<dc:creator>Vladimir Rusinov</dc:creator>
		<pubDate>Sat, 14 Mar 2009 18:59:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=586#comment-506265</guid>
		<description>Hi!

I&#039;ve translated it to russian: http://greenmice.info/ru/node/106

HTH to any of my russian colleagues.</description>
		<content:encoded><![CDATA[<p>Hi!</p>
<p>I&#8217;ve translated it to russian: <a href="http://greenmice.info/ru/node/106" rel="nofollow">http://greenmice.info/ru/node/106</a></p>
<p>HTH to any of my russian colleagues.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: peter</title>
		<link>http://www.mysqlperformanceblog.com/2009/01/12/should-you-move-from-myisam-to-innodb/comment-page-1/#comment-458486</link>
		<dc:creator>peter</dc:creator>
		<pubDate>Wed, 28 Jan 2009 19:32:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=586#comment-458486</guid>
		<description>Roman,

First I should note MySQL optimizer is often weak when handling complex queries which can be the problem unrelated to storage engines.

Second -  It is wrong to Assume MyISAM will be always faster for read only - there are many cases when it does not, in particular because it only can cache &quot;row&quot; data in OS cache, while Innodb can do this in the buffer pool.   So in reality I would do the benchmark and decide... 

Regarding XtraDB - we&#039;re not getting into the Product basics - we do XtraDB because we have a lot of customers with Innodb which are having issues with it and XtraDB is our effort to help them.  As Maria, Falcon, PBXT will mature we will be helping customers with them and blogging about them actively too. 

MyISAM does not get too many posts because it is simple :)</description>
		<content:encoded><![CDATA[<p>Roman,</p>
<p>First I should note MySQL optimizer is often weak when handling complex queries which can be the problem unrelated to storage engines.</p>
<p>Second &#8211;  It is wrong to Assume MyISAM will be always faster for read only &#8211; there are many cases when it does not, in particular because it only can cache &#8220;row&#8221; data in OS cache, while Innodb can do this in the buffer pool.   So in reality I would do the benchmark and decide&#8230; </p>
<p>Regarding XtraDB &#8211; we&#8217;re not getting into the Product basics &#8211; we do XtraDB because we have a lot of customers with Innodb which are having issues with it and XtraDB is our effort to help them.  As Maria, Falcon, PBXT will mature we will be helping customers with them and blogging about them actively too. </p>
<p>MyISAM does not get too many posts because it is simple <img src='http://www.mysqlperformanceblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roman Lvov</title>
		<link>http://www.mysqlperformanceblog.com/2009/01/12/should-you-move-from-myisam-to-innodb/comment-page-1/#comment-458186</link>
		<dc:creator>Roman Lvov</dc:creator>
		<pubDate>Wed, 28 Jan 2009 12:26:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=586#comment-458186</guid>
		<description>@Peter
&gt;Yes I speak mostly about OLTP. OLAP with full table scans and similar stuff indeed is the good usage for MyISAM. I should have been more clear with that.

Uff, ok, good. I was surprised to hear that InnoDB is almost always better choice than MyISAM. Because I&#039;m that guy who develops OLAP system. My DBs are very small compared to the mentioned above cases - mysqldump of the largest DB is only 550M. But queries upon data can run for seconds and even tens seconds (I even had one which ran 3 mins before optimization), as each query joins several tables, often 5-6-7 ones. And when the number of rows in the two biggest tables (which participate in almost every query) reached 300K and 50K, performance issues are visible. Data updates are performed once a day, and can be re-done if in the case of a crash entire DB has to be restored from a daily backup, so I almost perfectly live without InnoDB. So I think I should stick to MyISAM.
I can guess that now, when you started developing XtraDB based on InnoDB, you will be almost entirely focused on InnoDB issues. It would be really great if you find some time to continue covering MyISAM as well.</description>
		<content:encoded><![CDATA[<p>@Peter<br />
&gt;Yes I speak mostly about OLTP. OLAP with full table scans and similar stuff indeed is the good usage for MyISAM. I should have been more clear with that.</p>
<p>Uff, ok, good. I was surprised to hear that InnoDB is almost always better choice than MyISAM. Because I&#8217;m that guy who develops OLAP system. My DBs are very small compared to the mentioned above cases &#8211; mysqldump of the largest DB is only 550M. But queries upon data can run for seconds and even tens seconds (I even had one which ran 3 mins before optimization), as each query joins several tables, often 5-6-7 ones. And when the number of rows in the two biggest tables (which participate in almost every query) reached 300K and 50K, performance issues are visible. Data updates are performed once a day, and can be re-done if in the case of a crash entire DB has to be restored from a daily backup, so I almost perfectly live without InnoDB. So I think I should stick to MyISAM.<br />
I can guess that now, when you started developing XtraDB based on InnoDB, you will be almost entirely focused on InnoDB issues. It would be really great if you find some time to continue covering MyISAM as well.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: peter</title>
		<link>http://www.mysqlperformanceblog.com/2009/01/12/should-you-move-from-myisam-to-innodb/comment-page-1/#comment-451914</link>
		<dc:creator>peter</dc:creator>
		<pubDate>Thu, 22 Jan 2009 17:03:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=586#comment-451914</guid>
		<description>Mike,  

I understand benefits of partitioning.  I&#039;m just warning you about performance penalties of dealing with 1024 of underlying partitions.  The compression does have considerable overhead on heavy  insert no surprises here.</description>
		<content:encoded><![CDATA[<p>Mike,  </p>
<p>I understand benefits of partitioning.  I&#8217;m just warning you about performance penalties of dealing with 1024 of underlying partitions.  The compression does have considerable overhead on heavy  insert no surprises here.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mike</title>
		<link>http://www.mysqlperformanceblog.com/2009/01/12/should-you-move-from-myisam-to-innodb/comment-page-1/#comment-451566</link>
		<dc:creator>mike</dc:creator>
		<pubDate>Thu, 22 Jan 2009 10:54:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=586#comment-451566</guid>
		<description>Hi there,
We are using this many partitions as the application most probably will run for around 10 years and gather data for very long timespans. In order to facilitate pruning, we chose the maximum amount of partitions per table, which currently corresponds to 3,5 days per partition (partition by range). Best case scenario would have been if would have been able to compress this data aditionally.
Yes, our OS is SLES 9 32bit. Maybe we could change something there...
Today we experienced a good performance increase if we changed from Barracuda back to Antelope file format. We do not have compression then, but InnoDB plugin performs with around 13000 samples/second on inserts compared to 2000-3000 with Barracuda and compression.

cheers</description>
		<content:encoded><![CDATA[<p>Hi there,<br />
We are using this many partitions as the application most probably will run for around 10 years and gather data for very long timespans. In order to facilitate pruning, we chose the maximum amount of partitions per table, which currently corresponds to 3,5 days per partition (partition by range). Best case scenario would have been if would have been able to compress this data aditionally.<br />
Yes, our OS is SLES 9 32bit. Maybe we could change something there&#8230;<br />
Today we experienced a good performance increase if we changed from Barracuda back to Antelope file format. We do not have compression then, but InnoDB plugin performs with around 13000 samples/second on inserts compared to 2000-3000 with Barracuda and compression.</p>
<p>cheers</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shlomi Noach</title>
		<link>http://www.mysqlperformanceblog.com/2009/01/12/should-you-move-from-myisam-to-innodb/comment-page-1/#comment-451294</link>
		<dc:creator>Shlomi Noach</dc:creator>
		<pubDate>Thu, 22 Jan 2009 06:02:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=586#comment-451294</guid>
		<description>Mike,

This one has a 0.999 probability of being the solution to your 1GB problem:
Install a 64bit linux.

I suspect you have a 32bit installation, which is why the storage engine would not accept more than 1GB: it&#039;s out of address space. In total, you may squeeze some 1.5G from all MySQL components together... 

On a 4GB machine, setting innodb_buffer_pool_size to 2.5G (assuming only InnoDB is used, machine is solely MySQL) is probably a reasonable value, which leaves you much enough space for complicated queries and many connections.

I suspect that moving from 1GB to 2.5GB will increase you InnoDB performance a lot, based on the fact you only have 15GB of data.

Regards</description>
		<content:encoded><![CDATA[<p>Mike,</p>
<p>This one has a 0.999 probability of being the solution to your 1GB problem:<br />
Install a 64bit linux.</p>
<p>I suspect you have a 32bit installation, which is why the storage engine would not accept more than 1GB: it&#8217;s out of address space. In total, you may squeeze some 1.5G from all MySQL components together&#8230; </p>
<p>On a 4GB machine, setting innodb_buffer_pool_size to 2.5G (assuming only InnoDB is used, machine is solely MySQL) is probably a reasonable value, which leaves you much enough space for complicated queries and many connections.</p>
<p>I suspect that moving from 1GB to 2.5GB will increase you InnoDB performance a lot, based on the fact you only have 15GB of data.</p>
<p>Regards</p>
]]></content:encoded>
	</item>
</channel>
</rss>
