<?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>Robert Speer Web Development &#187; MySQL</title>
	<atom:link href="http://www.robertspeer.com/blog/category/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.robertspeer.com/blog</link>
	<description>Symfony,  PHP, Wordpress, Business Analysis</description>
	<lastBuildDate>Wed, 26 May 2010 14:50:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Jay Pipes MySQL bottlenecks lecture</title>
		<link>http://www.robertspeer.com/blog/jay-pipes-mysql-bottlenecks-lecture/</link>
		<comments>http://www.robertspeer.com/blog/jay-pipes-mysql-bottlenecks-lecture/#comments</comments>
		<pubDate>Sun, 01 Apr 2007 02:22:47 +0000</pubDate>
		<dc:creator>Robert Speer</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.robertspeer.com/blog/?p=4</guid>
		<description><![CDATA[So last Thursday the majority of the MoCo Web Development team and I attended the MySQL Meetup featuring Jay Pipes of MySQL. It was hosted at Metro State U. in Minneapolis, MN the facility was top notch (read: they had pie and coffee Jay Pipes is an excellent speaker whose enthusiasm about MySQL is contagious. [...]]]></description>
			<content:encoded><![CDATA[<p>So last Thursday the majority of the MoCo Web Development team and I attended the <a href="http://http://mysql.meetup.com/92/">MySQL Meetup</a> featuring Jay Pipes of MySQL.  It was hosted at  Metro State U.  in Minneapolis, MN the facility was top notch (read: they had pie and coffee <img src='http://www.robertspeer.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a href="http://jpipes.com/index.php" title="Jay Pipes Blog">Jay Pipes</a> is an excellent speaker whose enthusiasm about MySQL is contagious.  If you get a chance to hear him speak or back him into a corner for 20 questions I highly suggest it.</p>
<p>The thing Jay Spoke about that was most relevent to what I&#8217;m doing now was Horizontal Partitioning <a href="http://dev.mysql.com/tech-resources/articles/performance-partitioning.html" target="_blank">[article]</a> <a href="http://dev.mysql.com/doc/refman/5.1/en/partitioning.html">[manual]</a> which is taking a table with a very large amount of rows and breaking that heap into a series of smaller groups that can be intelligently loaded into memory on a as needed basis.</p>
<p>The obvious way for to do this for my, and I&#8217;d assume many projects is by, year.  This would speed things up because my project&#8217;s users are most likely to only need to access the current year&#8217;s information.  If I only ask MySQL to load up a table containing the current year then that&#8217;s a much smaller bite to chew.</p>
<p>Horizontal Partitioning can also be done with a hash of one or more other columns, which makes it very flexible, and very useful for medium to huge projects.</p>
<p>On a related topic I also realized that I&#8217;ve been asked by my supervisor to investigate the benefits of Vertical Partitioning before either of  us knew what to call it.  Essentially it&#8217;s breaking up tables and adding one-to-one relationships between them.  This allows frequently accessed sections of the original table to be accessed in isolation without having to load a bunch of unused fields to memory.  I&#8217;m lead to believe that some db&#8217;s handle this pragmatically but MySQL does not.</p>
<p>Another key points were that the most cost effective way to mitigate a MySQL bottleneck is to add more RAM to the server.  This is essentially throwing money at the problem, but less money that the equivalent  labor costs associated with other solutions.</p>
<p>Lastly the common yet important advice of &#8220;use the smallest data container possible&#8221; because &#8220;a BigINT is twice the size of a INT but a INT is twice as fast&#8221;.</p>
<p>There were many many other gems from this lecture, but I forgot my notes at work and I&#8217;m tired of writing</p>
<p>Update (4/1/06 9:21PM) &#8212; I found this useful list of tips &amp; tricks also partially written by Jay Pipes <a href="http://" title="http://forge.mysql.com/wiki/Top10SQLPerformanceTips" target="_blank">http://forge.mysql.com/wiki/Top10SQLPerformanceTips </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.robertspeer.com/blog/jay-pipes-mysql-bottlenecks-lecture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
