<?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: Join performance of MyISAM and Innodb</title>
	<atom:link href="http://www.mysqlperformanceblog.com/2006/05/29/join-performance-of-myisam-and-innodb/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mysqlperformanceblog.com/2006/05/29/join-performance-of-myisam-and-innodb/</link>
	<description>Percona&#039;s MySQL &#38; InnoDB performance and scalability blog</description>
	<lastBuildDate>Sat, 11 Feb 2012 16:45:54 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Jatin Mehta</title>
		<link>http://www.mysqlperformanceblog.com/2006/05/29/join-performance-of-myisam-and-innodb/comment-page-1/#comment-742815</link>
		<dc:creator>Jatin Mehta</dc:creator>
		<pubDate>Sat, 03 Apr 2010 08:56:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2006/05/29/join-performance-of-myisam-and-innodb/#comment-742815</guid>
		<description>QUERY: 
SELECT SQL_CALC_FOUND_ROWS p.*, FLOOR(p.prodratingtotal/p.prodnumratings) AS prodavgrating, 0 AS prodgroupdiscount, pi.* , (IF(p.prodname=&#039;gold&#039;, 10000, 0) + IF(p.prodcode=&#039;gold&#039;, 10000, 0) + ((MATCH (ps.prodname) AGAINST (&#039;gold&#039;)) * 10) + MATCH (ps.prodname,ps.prodcode,ps.proddesc,ps.prodsearchkeywords) AGAINST (&#039;gold&#039;)) AS score FROM products p LEFT JOIN product_images pi ON (p.productid = pi.imageprodid AND pi.imageisthumb = 1) INNER JOIN product_search ps ON p.productid = ps.productid WHERE p.prodvisible = 1 AND (ps.prodcode = &#039;gold&#039; OR TRUE) AND (MATCH (ps.prodname,ps.prodcode,ps.proddesc,ps.prodsearchkeywords) AGAINST (&#039;gold&#039;)) ORDER BY score DESC LIMIT 20


EXECUTION TIME: 2.5000+ seconds


TABLES DATA:
	products: 31,000 records
	product_images: 92,000 records
	product_search: 57,000 records


EXPLAIN COMMAND WITH ABOVE QUERY:
1	SIMPLE	ps	fulltext	prodname	prodname	0 		1	Using where; Using temporary; Using filesort 
1	SIMPLE	p	eq_ref	PRIMARY,i_products_rating_vis,i_products_added_vis,i_products_sortorder_vis		PRIMARY	4	shoppingcart_5521.ps.productid	1	Using where
1	SIMPLE	pi	ref	  i_product_images_imageprodid 	i_product_images_imageprodid	5	shoppingcart_5521.p.productid,const	1</description>
		<content:encoded><![CDATA[<p>QUERY:<br />
SELECT SQL_CALC_FOUND_ROWS p.*, FLOOR(p.prodratingtotal/p.prodnumratings) AS prodavgrating, 0 AS prodgroupdiscount, pi.* , (IF(p.prodname=&#8217;gold&#8217;, 10000, 0) + IF(p.prodcode=&#8217;gold&#8217;, 10000, 0) + ((MATCH (ps.prodname) AGAINST (&#8216;gold&#8217;)) * 10) + MATCH (ps.prodname,ps.prodcode,ps.proddesc,ps.prodsearchkeywords) AGAINST (&#8216;gold&#8217;)) AS score FROM products p LEFT JOIN product_images pi ON (p.productid = pi.imageprodid AND pi.imageisthumb = 1) INNER JOIN product_search ps ON p.productid = ps.productid WHERE p.prodvisible = 1 AND (ps.prodcode = &#8216;gold&#8217; OR TRUE) AND (MATCH (ps.prodname,ps.prodcode,ps.proddesc,ps.prodsearchkeywords) AGAINST (&#8216;gold&#8217;)) ORDER BY score DESC LIMIT 20</p>
<p>EXECUTION TIME: 2.5000+ seconds</p>
<p>TABLES DATA:<br />
	products: 31,000 records<br />
	product_images: 92,000 records<br />
	product_search: 57,000 records</p>
<p>EXPLAIN COMMAND WITH ABOVE QUERY:<br />
1	SIMPLE	ps	fulltext	prodname	prodname	0 		1	Using where; Using temporary; Using filesort<br />
1	SIMPLE	p	eq_ref	PRIMARY,i_products_rating_vis,i_products_added_vis,i_products_sortorder_vis		PRIMARY	4	shoppingcart_5521.ps.productid	1	Using where<br />
1	SIMPLE	pi	ref	  i_product_images_imageprodid 	i_product_images_imageprodid	5	shoppingcart_5521.p.productid,const	1</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: InnoDB is better for SugarCRM - Blog of Leonid Mamchenkov</title>
		<link>http://www.mysqlperformanceblog.com/2006/05/29/join-performance-of-myisam-and-innodb/comment-page-1/#comment-339564</link>
		<dc:creator>InnoDB is better for SugarCRM - Blog of Leonid Mamchenkov</dc:creator>
		<pubDate>Sun, 03 Aug 2008 20:51:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2006/05/29/join-performance-of-myisam-and-innodb/#comment-339564</guid>
		<description>[...] similarly brief Google search suggested (see here and here) and explained converting MySQL tables from MyISAM to InnoDB.Â  A test has been performed and [...]</description>
		<content:encoded><![CDATA[<p>[...] similarly brief Google search suggested (see here and here) and explained converting MySQL tables from MyISAM to InnoDB.Â  A test has been performed and [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: peter</title>
		<link>http://www.mysqlperformanceblog.com/2006/05/29/join-performance-of-myisam-and-innodb/comment-page-1/#comment-1558</link>
		<dc:creator>peter</dc:creator>
		<pubDate>Mon, 07 Aug 2006 16:05:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2006/05/29/join-performance-of-myisam-and-innodb/#comment-1558</guid>
		<description>Feel fee to test it Stefan :)

Generally for join the table which gets random lookup is more important - table which is having full table scan or range scan contributes less to total prformance.

So in our case performance will be similar to join of two Innob tables. 

...Also no locks will be happening.  Innodb does not lock rows for normal selects, consistent reads are used instead.</description>
		<content:encoded><![CDATA[<p>Feel fee to test it Stefan <img src='http://www.mysqlperformanceblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Generally for join the table which gets random lookup is more important &#8211; table which is having full table scan or range scan contributes less to total prformance.</p>
<p>So in our case performance will be similar to join of two Innob tables. </p>
<p>&#8230;Also no locks will be happening.  Innodb does not lock rows for normal selects, consistent reads are used instead.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stefan minka`</title>
		<link>http://www.mysqlperformanceblog.com/2006/05/29/join-performance-of-myisam-and-innodb/comment-page-1/#comment-1555</link>
		<dc:creator>stefan minka`</dc:creator>
		<pubDate>Mon, 07 Aug 2006 10:30:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2006/05/29/join-performance-of-myisam-and-innodb/#comment-1555</guid>
		<description>how different becomes the situation, when a join both myisam and innodb tables together.

exampe:
- table a is myisam, table b is innodd
- select ... from a inner join b on a.x=b.x

additional question: lets assume both tables will be big, so will the table b (innodb) be locked by row, or as whole?</description>
		<content:encoded><![CDATA[<p>how different becomes the situation, when a join both myisam and innodb tables together.</p>
<p>exampe:<br />
- table a is myisam, table b is innodd<br />
- select &#8230; from a inner join b on a.x=b.x</p>
<p>additional question: lets assume both tables will be big, so will the table b (innodb) be locked by row, or as whole?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MySQL Developer &#187; Blog Archive &#187; MyISAM to InnoDB</title>
		<link>http://www.mysqlperformanceblog.com/2006/05/29/join-performance-of-myisam-and-innodb/comment-page-1/#comment-1075</link>
		<dc:creator>MySQL Developer &#187; Blog Archive &#187; MyISAM to InnoDB</dc:creator>
		<pubDate>Sun, 16 Jul 2006 16:13:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2006/05/29/join-performance-of-myisam-and-innodb/#comment-1075</guid>
		<description>[...] Join Performance of MyISAM and InnoDB    [via Planet MySQL] [...]</description>
		<content:encoded><![CDATA[<p>[...] Join Performance of MyISAM and InnoDB    [via Planet MySQL] [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>

