<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>from Oracle to MySQL</title>
	<atom:link href="http://oracle2mysql.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://oracle2mysql.wordpress.com</link>
	<description>yet another MySQL DBA blog</description>
	<lastBuildDate>Tue, 15 Nov 2011 04:15:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='oracle2mysql.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>from Oracle to MySQL</title>
		<link>http://oracle2mysql.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://oracle2mysql.wordpress.com/osd.xml" title="from Oracle to MySQL" />
	<atom:link rel='hub' href='http://oracle2mysql.wordpress.com/?pushpress=hub'/>
		<item>
		<title>on NULL and NOT IN</title>
		<link>http://oracle2mysql.wordpress.com/2010/02/27/on-null-and-not-in/</link>
		<comments>http://oracle2mysql.wordpress.com/2010/02/27/on-null-and-not-in/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 01:49:05 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://oracle2mysql.wordpress.com/?p=33</guid>
		<description><![CDATA[I&#8217;ve been trying to think of something &#8220;big&#8221; to write about for so long, I haven&#8217;t written anything.  So I&#8217;ll write about something &#8220;small&#8221; that I found out the other day. It turns out, &#8216;NOT IN&#8217; and &#8216;NULL&#8217; can have an odd (to me) effect. Say you are doing something like SELECT a FROM table1 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oracle2mysql.wordpress.com&amp;blog=1459066&amp;post=33&amp;subd=oracle2mysql&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been trying to think of something &#8220;big&#8221; to write about for so long, I haven&#8217;t written anything.  So I&#8217;ll write about something &#8220;small&#8221; that I found out the other day.</p>
<p>It turns out, &#8216;NOT IN&#8217; and &#8216;NULL&#8217; can have an odd (to me) effect.</p>
<p>Say you are doing something like</p>
<p>SELECT a FROM table1<br />
WHERE a NOT IN<br />
(SELECT a FROM table2);</p>
<p>If there are any NULLs in the table2&#8242;s a column, you will never get any results from this query.<br />
Here&#8217;s an example:</p>
<p>&#8211; first, here are the two tables I used:</p>
<p>mysql&gt; select * from test1;<br />
+&#8212;&#8212;+<br />
| a    |<br />
+&#8212;&#8212;+<br />
|    1 |<br />
|    2 |<br />
|    3 |<br />
|    4 |<br />
|    5 |<br />
|    6 |<br />
+&#8212;&#8212;+<br />
6 rows in set (0.02 sec)</p>
<p>mysql&gt; select * from test2;<br />
+&#8212;&#8212;+<br />
| a    |<br />
+&#8212;&#8212;+<br />
|    1 |<br />
|    2 |<br />
|    3 |<br />
| NULL |<br />
+&#8212;&#8212;+<br />
4 rows in set (0.00 sec)</p>
<p>mysql&gt; select a from test1 where a not in (select a from test2);<br />
Empty set (0.02 sec)</p>
<p>&#8211; personally, I expected to get 4,5,6.  For that, you can do the following:</p>
<p>mysql&gt; select a from test1 where a not in (select a from test2 where a is NOT NULL);<br />
+&#8212;&#8212;+<br />
| a    |<br />
+&#8212;&#8212;+<br />
|    4 |<br />
|    5 |<br />
|    6 |<br />
+&#8212;&#8212;+<br />
3 rows in set (0.00 sec)</p>
<p>Why is this?  It is actually to follow the SQL standards on NULL.  As mentioned at <a href="http://dev.mysql.com/doc/refman/5.1/en/comparison-operators.htm" target="_blank">http://dev.mysql.com/doc/refman/5.1/en/comparison-operators.htm</a>l ,</p>
<p>&#8220;To comply with the SQL standard, IN returns NULL not only if the expression on the left hand side is NULL, but also if no match is found in the list and one of the expressions in the list is NULL.&#8221;</p>
<p>Just as &#8220;1=NULL&#8221; is undefined rather than false, and &#8220;1&lt;&gt;NULL&#8221; is too, &#8220;1 in (null)&#8221; is also undefined (or null), and &#8220;1 NOT IN (null) is null&#8221;.</p>
<p>mysql&gt; select 1 in (null);<br />
+&#8212;&#8212;&#8212;&#8212;-+<br />
| 1 in (null) |<br />
+&#8212;&#8212;&#8212;&#8212;-+<br />
|        NULL |<br />
+&#8212;&#8212;&#8212;&#8212;-+<br />
1 row in set (0.00 sec)</p>
<p>mysql&gt; select 1 not in (null);<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+<br />
| 1 not in (null) |<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+<br />
|            NULL |<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+<br />
1 row in set (0.00 sec)</p>
<p>To simplify the examples with tables above, we can do the following, and see similar results.</p>
<p>mysql&gt; select 1 not in (2);<br />
+&#8212;&#8212;&#8212;&#8212;&#8211;+<br />
| 1 not in (2) |<br />
+&#8212;&#8212;&#8212;&#8212;&#8211;+<br />
| 1            |<br />
+&#8212;&#8212;&#8212;&#8212;&#8211;+<br />
1 row in set (0.00 sec)</p>
<p>mysql&gt; select 1 not in (2,null);<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+<br />
| 1 not in (2,null) |<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+<br />
| NULL              |<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+<br />
1 row in set (0.00 sec)</p>
<p>Personally, once I read the reasoning, it made sense to me, but initially I was surprised.  I thought I&#8217;d write about it, because it is common to do a &#8220;SELECT &#8230; WHERE NOT IN (SELECT &#8230;)&#8221;, as in the example above with table1 and table2, and the results might not be what you expect if you have any NULLs in your table.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oracle2mysql.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oracle2mysql.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oracle2mysql.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oracle2mysql.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oracle2mysql.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oracle2mysql.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oracle2mysql.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oracle2mysql.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oracle2mysql.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oracle2mysql.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oracle2mysql.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oracle2mysql.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oracle2mysql.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oracle2mysql.wordpress.com/33/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oracle2mysql.wordpress.com&amp;blog=1459066&amp;post=33&amp;subd=oracle2mysql&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oracle2mysql.wordpress.com/2010/02/27/on-null-and-not-in/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/79c146b4c8eefd9f43271910f8929c7c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ben</media:title>
		</media:content>
	</item>
		<item>
		<title>and back</title>
		<link>http://oracle2mysql.wordpress.com/2009/04/20/and-back/</link>
		<comments>http://oracle2mysql.wordpress.com/2009/04/20/and-back/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 18:17:13 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://oracle2mysql.wordpress.com/?p=31</guid>
		<description><![CDATA[to oracle&#8230;<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oracle2mysql.wordpress.com&amp;blog=1459066&amp;post=31&amp;subd=oracle2mysql&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>to oracle&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oracle2mysql.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oracle2mysql.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oracle2mysql.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oracle2mysql.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oracle2mysql.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oracle2mysql.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oracle2mysql.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oracle2mysql.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oracle2mysql.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oracle2mysql.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oracle2mysql.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oracle2mysql.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oracle2mysql.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oracle2mysql.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oracle2mysql.wordpress.com&amp;blog=1459066&amp;post=31&amp;subd=oracle2mysql&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oracle2mysql.wordpress.com/2009/04/20/and-back/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/79c146b4c8eefd9f43271910f8929c7c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ben</media:title>
		</media:content>
	</item>
		<item>
		<title>it&#8217;s official&#8230;</title>
		<link>http://oracle2mysql.wordpress.com/2007/12/05/its-official/</link>
		<comments>http://oracle2mysql.wordpress.com/2007/12/05/its-official/#comments</comments>
		<pubDate>Wed, 05 Dec 2007 03:57:54 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://oracle2mysql.wordpress.com/2007/12/05/its-official/</guid>
		<description><![CDATA[I am now an employee of MySQL. I guess my transition from Oracle to MySQL is complete. I am super-excited to have signed on as a support engineer for MySQL! As you can read in my earlier posts, I had great experiences with MySQL support, so I&#8217;m really glad (and honored) to join the team. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oracle2mysql.wordpress.com&amp;blog=1459066&amp;post=27&amp;subd=oracle2mysql&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am now an employee of MySQL.  I guess my transition from Oracle to MySQL is complete.  <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I am super-excited to have signed on as a support engineer for MySQL!  As you can read in my earlier posts, I had great experiences with MySQL support, so I&#8217;m really glad (and honored) to join the team.</p>
<p>Now I need to decide what direction I want to take this blog in.  Maybe start a new blog with a different focus &#8211; I haven&#8217;t decided yet.   Meanwhile, I have a lot of learning to do and have to get up-to-speed on things so I can be sure to do the support team proud!  It&#8217;s going to be a little different from being a DBA, that&#8217;s for sure&#8230;</p>
<p>Anyway, I have a lot of ideas for future blog entries, but it might take a little while&#8230;  Stay tuned.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/oracle2mysql.wordpress.com/27/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/oracle2mysql.wordpress.com/27/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oracle2mysql.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oracle2mysql.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oracle2mysql.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oracle2mysql.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oracle2mysql.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oracle2mysql.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oracle2mysql.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oracle2mysql.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oracle2mysql.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oracle2mysql.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oracle2mysql.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oracle2mysql.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oracle2mysql.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oracle2mysql.wordpress.com/27/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oracle2mysql.wordpress.com&amp;blog=1459066&amp;post=27&amp;subd=oracle2mysql&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oracle2mysql.wordpress.com/2007/12/05/its-official/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/79c146b4c8eefd9f43271910f8929c7c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ben</media:title>
		</media:content>
	</item>
		<item>
		<title>Oh for the wait interface, part 2</title>
		<link>http://oracle2mysql.wordpress.com/2007/10/31/oh-for-the-wait-interface-part-2/</link>
		<comments>http://oracle2mysql.wordpress.com/2007/10/31/oh-for-the-wait-interface-part-2/#comments</comments>
		<pubDate>Wed, 31 Oct 2007 00:44:06 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://oracle2mysql.wordpress.com/2007/10/31/oh-for-the-wait-interface-part-2/</guid>
		<description><![CDATA[A while back I wrote a post expressing a longing for wait-interface tuning like we have for Oracle (and now SQL Server, I hear). Since then I have found out that the MySQL community server (since 5.0.37) has something starting along those lines: the query profiler. Using the query profiler, you can get at wait [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oracle2mysql.wordpress.com&amp;blog=1459066&amp;post=26&amp;subd=oracle2mysql&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A while back I wrote a post expressing a longing for wait-interface tuning like we have for Oracle (and now SQL Server, I hear).  Since then I have found out that the MySQL community server (since 5.0.37) has something starting along those lines: the query profiler.</p>
<p>Using the query profiler, you can get at wait times for a particular query, to help you tune it.  There is the official <a href="http://dev.mysql.com/doc/refman/5.0/en/show-profiles.html">documentation</a>, and, even better, an <a href="http://dev.mysql.com/tech-resources/articles/using-new-query-profiler.html">article</a> by Robin Schumacher that explains and gives examples.</p>
<p>From here it would probably be a &#8220;simple&#8221; matter to start collecting all this data system-wide, into a repository, to gather global information on wait-event times.   In the meantime, this is certainly a step in the right direction.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/oracle2mysql.wordpress.com/26/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/oracle2mysql.wordpress.com/26/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oracle2mysql.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oracle2mysql.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oracle2mysql.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oracle2mysql.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oracle2mysql.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oracle2mysql.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oracle2mysql.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oracle2mysql.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oracle2mysql.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oracle2mysql.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oracle2mysql.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oracle2mysql.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oracle2mysql.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oracle2mysql.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oracle2mysql.wordpress.com&amp;blog=1459066&amp;post=26&amp;subd=oracle2mysql&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oracle2mysql.wordpress.com/2007/10/31/oh-for-the-wait-interface-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/79c146b4c8eefd9f43271910f8929c7c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ben</media:title>
		</media:content>
	</item>
		<item>
		<title>MySQL&#8217;s white paper on migrating from Oracle to MySQL</title>
		<link>http://oracle2mysql.wordpress.com/2007/09/28/mysqls-white-paper-on-migrating-from-oracle-to-mysql/</link>
		<comments>http://oracle2mysql.wordpress.com/2007/09/28/mysqls-white-paper-on-migrating-from-oracle-to-mysql/#comments</comments>
		<pubDate>Fri, 28 Sep 2007 20:42:16 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://oracle2mysql.wordpress.com/2007/09/28/mysqls-white-paper-on-migrating-from-oracle-to-mysql/</guid>
		<description><![CDATA[I just found this March 2006 white paper on migrating from Oracle to MySQL. Too bad I hadn&#8217;t seen this before I gave my talk or started this blog! Go to mysql.com and click on &#8220;White Papers&#8221; under the &#8220;Discover&#8221; tab, then search the page for &#8220;A Practical Guide to Migrating From Oracle to MySQL&#8221;. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oracle2mysql.wordpress.com&amp;blog=1459066&amp;post=25&amp;subd=oracle2mysql&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I just found this March 2006 white paper on migrating from Oracle to MySQL.  Too bad I hadn&#8217;t seen this before I gave my talk or started this blog!  Go to mysql.com and click on &#8220;White Papers&#8221; under the &#8220;Discover&#8221; tab, then search the page for &#8220;A Practical Guide to Migrating From Oracle to MySQL&#8221;.  (Or go directly to http://www.mysql.com/why-mysql/white-papers/ and search for it.)</p>
<p>Good paper on the issues involved that gives tips, references tools and case studies, and has appendices that compare syntaxes, data types, etc.   Wish I had found it earlier.  Good to keep poking around from time to time, to find things like this.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/oracle2mysql.wordpress.com/25/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/oracle2mysql.wordpress.com/25/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oracle2mysql.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oracle2mysql.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oracle2mysql.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oracle2mysql.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oracle2mysql.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oracle2mysql.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oracle2mysql.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oracle2mysql.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oracle2mysql.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oracle2mysql.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oracle2mysql.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oracle2mysql.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oracle2mysql.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oracle2mysql.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oracle2mysql.wordpress.com&amp;blog=1459066&amp;post=25&amp;subd=oracle2mysql&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oracle2mysql.wordpress.com/2007/09/28/mysqls-white-paper-on-migrating-from-oracle-to-mysql/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/79c146b4c8eefd9f43271910f8929c7c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ben</media:title>
		</media:content>
	</item>
		<item>
		<title>tips for MySQL newbies</title>
		<link>http://oracle2mysql.wordpress.com/2007/09/25/tips-for-mysql-newbies/</link>
		<comments>http://oracle2mysql.wordpress.com/2007/09/25/tips-for-mysql-newbies/#comments</comments>
		<pubDate>Tue, 25 Sep 2007 22:06:16 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://oracle2mysql.wordpress.com/2007/09/25/tips-for-mysql-newbies/</guid>
		<description><![CDATA[Are you a brand-newbie to MySQL? Coming from another database (or databases)? If so, here are some concepts to read up on right away to ease your confusion down the road. These are the top things I wish someone had told me about before I did anything else with MySQL. (I&#8217;ve had a lot of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oracle2mysql.wordpress.com&amp;blog=1459066&amp;post=24&amp;subd=oracle2mysql&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Are you a brand-newbie to MySQL?  Coming from another database (or databases)?  If so, here are some concepts to read up on right away to ease your confusion down the road.  These are the top things I wish someone had told me about before I did anything else with MySQL.</p>
<p>(I&#8217;ve had a lot of questions along these lines, and have posted on all of each of these items somewhere, but thought it&#8217;d be more helpful to gather the points together into one place.)</p>
<p><strong>MY TOP 2 &#8220;BEFORE YOU BEGIN&#8221; TOPICS</strong></p>
<p><u>#1: storage engines.</u>  Before you do any big planning, if you don&#8217;t know what a &#8220;storage engine&#8221; is, find out!<br />
I can&#8217;t think of a good analogy for what a storage engine is.  The best I can come up with is, you know how with Oracle you choose your index types (btree? bitmap? etc)?  In MySQL, you choose your table types (and with them, the index types).  Your choice determines a lot.  Each storage engine (table type) has various features and limitations.  You need to know them.  For instance, do you want ACID-compliant transactions or foreign-key constraints?  You&#8217;ll most likely be using the InnoDB storage engine then.  In which case, clustering is not supported &#8211; that would require the NDB storage engine (which, by the way, is an in-memory storage engine &#8211; ie, all your tables must fit into memory).<br />
You can read more in <a href="http://oracle2mysql.wordpress.com/2007/08/13/newbie-gotcha-storage-engines/">my post on the subject</a>, which includes further links for even more information.</p>
<p><u>#2: scale-out vs scale-up</u>: plan your strategy (it&#8217;ll affect your schema and a lot more)<br />
Plan your scaling strategy.  Not only is it crucial to do, it might affect your schema design and much more!  (Eg, if you &#8220;scale out&#8221;, you&#8217;ll need to plan your schema accordingly.)<br />
You can read more in <a href="http://oracle2mysql.wordpress.com/2007/08/22/12/">my post on that subject</a>, which includes further linds for even more information.</p>
<p>Before you roll anything into production, you&#8217;ll need to read up on these topics (among others):</p>
<p><strong>TWO VERY IMPORTANT THINGS THAT ARE DIFFERENT THAN YOU&#8217;RE USED TO</strong></p>
<p><u>#1 backups</u><br />
- read the documentation (on mysql.com) on mysqldump.  It&#8217;s something like export, but you can use it with archived binary logs for point-in-time recovery, too.<br />
- or use LVM if you have linux, to take snapshots<br />
- or buy add-ons like MySQLHotCopy (?)<br />
- or all of the above!<br />
more notes with further links in <a href="http://oracle2mysql.wordpress.com/2007/08/27/mysql-backups-for-innodb-as-an-oracle-dba/">this post</a>.</p>
<p><u>#2 permissions</u><br />
there are no roles; permissions are based on a userid and (if desired) the host or hosts they connect from.  It&#8217;s a bit laborious, and you&#8217;ll want to read up on it and play with it.  (I got snagged on it a few times; see <a href="http://oracle2mysql.wordpress.com/2007/08/27/mysql-backups-for-innodb-as-an-oracle-dba/">this</a> for an example.)</p>
<p><strong>AND 5 OTHER THINGS I THINK YOU SHOULD KNOW ABOUT RIGHT OFF THE BAT</strong></p>
<p><u>#1 collations</u> &#8211;    by default, if you compare strings, it&#8217;s not case sensitive (&#8216;a&#8217;='A&#8217;).  Read up on collations and character sets.<br />
<u> #2 autocommit</u> is turned on by default.  If you want to change this, read up on init_connect.  Or see <a href="http://oracle2mysql.wordpress.com/2007/08/28/on-autocommit-init_connect-and-super/">this post</a> for more.<br />
<u> #3 the optimizer</u> is not as developed/fine-tuned/complex  be sure to test and QA and &#8220;analyze&#8221; your statements as much as possible.  Use the slow query log to find longer-running queries and analyze them.  Use &#8220;force index&#8221; in your select statements where needed (hopefully you know your data better than the optimizer).<br />
<u>#4: SQL_MODE</u>.  If you&#8217;re concerned about strict data integrity, you should read up on SQL_MODE.  MySQL can insert &#8220;bad&#8221; data silently by default&#8230; (0&#8242;s for null dates, etc)<br />
<u> #5: isolation levels.  I</u>f you&#8217;re going to use transactions (or even if you&#8217;re not), read up on isolation levels.  This can affect locking, transactional integrity, etc.  The default setting is not quite like Oracle&#8217;s.</p>
<p>where to get further info:<br />
- download the software from mysql.com<br />
- dev.mysql.com  has the documentation, papers, etc<br />
- planetmysql.com is a blog aggregator for MySQL-related blogs<br />
- do lots of google&#8217;ing<br />
- recommended books: Pro MySQL, MySQL 5.0 Certification Study Guide, MySQL Internals (and more&#8230;)</p>
<p>- buy MySQL support (it&#8217;s actually very good!  Not at all like Oracle&#8217;s support.  Best software support I&#8217;ve ever experienced by far, personally.)</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/oracle2mysql.wordpress.com/24/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/oracle2mysql.wordpress.com/24/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oracle2mysql.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oracle2mysql.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oracle2mysql.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oracle2mysql.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oracle2mysql.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oracle2mysql.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oracle2mysql.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oracle2mysql.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oracle2mysql.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oracle2mysql.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oracle2mysql.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oracle2mysql.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oracle2mysql.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oracle2mysql.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oracle2mysql.wordpress.com&amp;blog=1459066&amp;post=24&amp;subd=oracle2mysql&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oracle2mysql.wordpress.com/2007/09/25/tips-for-mysql-newbies/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/79c146b4c8eefd9f43271910f8929c7c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ben</media:title>
		</media:content>
	</item>
		<item>
		<title>I&#8217;ve been reading my September-October issue of Oracle Magazine.</title>
		<link>http://oracle2mysql.wordpress.com/2007/09/18/ive-been-reading-my-september-october-issue-of-oracle-magazine/</link>
		<comments>http://oracle2mysql.wordpress.com/2007/09/18/ive-been-reading-my-september-october-issue-of-oracle-magazine/#comments</comments>
		<pubDate>Tue, 18 Sep 2007 23:34:30 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://oracle2mysql.wordpress.com/2007/09/18/ive-been-reading-my-september-october-issue-of-oracle-magazine/</guid>
		<description><![CDATA[And this has been said before but I can&#8217;t help but say it again&#8230; In the latest Oracle Magazine, Tom Kyte and Ari Kaplan&#8217;s columns both tout one of 11g&#8217;s new features &#8211; the &#8220;server results cache&#8221; or &#8220;query result cache&#8221; (as the authors referred to it, respectively) . They both describe it as a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oracle2mysql.wordpress.com&amp;blog=1459066&amp;post=23&amp;subd=oracle2mysql&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>And this has been said before but I can&#8217;t help but say it again&#8230;</p>
<p>In the latest Oracle Magazine, Tom Kyte and Ari Kaplan&#8217;s columns both tout one of 11g&#8217;s new features &#8211; the &#8220;server results cache&#8221; or &#8220;query result cache&#8221; (as the authors referred to it, respectively) .  They both describe it as a &#8220;great new feature&#8221;.  Neither happens to mention that MySQL has had this since version 4.0.  It rankles me.  It looks like there are a lot of truly &#8220;great new features&#8221; in 11g; let&#8217;s give credit for this one where it&#8217;s due.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/oracle2mysql.wordpress.com/23/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/oracle2mysql.wordpress.com/23/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oracle2mysql.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oracle2mysql.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oracle2mysql.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oracle2mysql.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oracle2mysql.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oracle2mysql.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oracle2mysql.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oracle2mysql.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oracle2mysql.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oracle2mysql.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oracle2mysql.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oracle2mysql.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oracle2mysql.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oracle2mysql.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oracle2mysql.wordpress.com&amp;blog=1459066&amp;post=23&amp;subd=oracle2mysql&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oracle2mysql.wordpress.com/2007/09/18/ive-been-reading-my-september-october-issue-of-oracle-magazine/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/79c146b4c8eefd9f43271910f8929c7c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ben</media:title>
		</media:content>
	</item>
		<item>
		<title>backups worked</title>
		<link>http://oracle2mysql.wordpress.com/2007/09/18/backups-worked/</link>
		<comments>http://oracle2mysql.wordpress.com/2007/09/18/backups-worked/#comments</comments>
		<pubDate>Tue, 18 Sep 2007 20:28:27 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://oracle2mysql.wordpress.com/2007/09/18/backups-worked/</guid>
		<description><![CDATA[We had an unscheduled test of our backups last night. Point-in-time recovery using a mysqldump and binary log files worked fine (thank goodness). I&#8217;m used to thinking of (Oracle) exports being one thing, and point-in-time recovery (using hot backups) another. Maybe there&#8217;s a way to do a &#8220;PITR&#8221; in Oracle using an export, rolling forward [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oracle2mysql.wordpress.com&amp;blog=1459066&amp;post=22&amp;subd=oracle2mysql&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We had an unscheduled test of our backups last night.  Point-in-time recovery using a mysqldump and binary log files worked fine (thank goodness).</p>
<p>I&#8217;m used to thinking of (Oracle) exports being one thing, and point-in-time recovery (using hot backups) another.  Maybe there&#8217;s a way to do a &#8220;PITR&#8221; in Oracle using an export, rolling forward using timestamps rather than SCNs&#8230; Don&#8217;t know.   I know that with MySQL you can do it.</p>
<p>Last night we had some user-generated data corruption on a production server.  The database was relatively small (a few Gig), so, after stopping the database and restarting it with ––<em>skip-networking, </em>I imported it from the latest daily mysqldump.   Although I didn&#8217;t use ––<em>master-data</em> for the mysqldump (we had some locking issues with that in the past) I knew the time that the mysqldump had been started.</p>
<p>I did a little investigation into the binary log files using mysqlbinlog</p>
<p><em>mysqlbinlog ––start-datetime=&#8221;2007-09-17 11:25:00&#8243; ––stop-datetime=&#8221;2007-09-17 11:30:00&#8243; binlog.000003 &gt; my_tempfile</em></p>
<p>and found out the exact time I wanted to start rolling forward from.  (I already knew when to stop rolling forward.)  Then I ran it</p>
<p><em>mysql -p our_database &lt; mysqlbinlog ––start-datetime=&#8221;2007-09-17 11:26:00 ––stop-datetime=&#8221;2007-09-17 20:45:00&#8243;</em></p>
<p>Checked things out, shut down mysql and restarted it normally, and we were once again off and running.</p>
<p>(Luckily for us, in this case I didn&#8217;t need to know an exact or  down-to-the-second time to start rolling forward from.  Activity was very light around the time of the mysqldump.  Also, luckily, we didn&#8217;t need a starttime more precise than to-the-second.  If we had needed to be more precise, I think I would have needed a mysqldump taken with the  ––<em>master-data </em>option.)<em><br />
</em></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/oracle2mysql.wordpress.com/22/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/oracle2mysql.wordpress.com/22/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oracle2mysql.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oracle2mysql.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oracle2mysql.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oracle2mysql.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oracle2mysql.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oracle2mysql.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oracle2mysql.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oracle2mysql.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oracle2mysql.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oracle2mysql.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oracle2mysql.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oracle2mysql.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oracle2mysql.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oracle2mysql.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oracle2mysql.wordpress.com&amp;blog=1459066&amp;post=22&amp;subd=oracle2mysql&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oracle2mysql.wordpress.com/2007/09/18/backups-worked/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/79c146b4c8eefd9f43271910f8929c7c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ben</media:title>
		</media:content>
	</item>
		<item>
		<title>oh for the wait interface</title>
		<link>http://oracle2mysql.wordpress.com/2007/09/06/oh-for-the-wait-interface/</link>
		<comments>http://oracle2mysql.wordpress.com/2007/09/06/oh-for-the-wait-interface/#comments</comments>
		<pubDate>Thu, 06 Sep 2007 23:38:53 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://oracle2mysql.wordpress.com/2007/09/06/oh-for-the-wait-interface/</guid>
		<description><![CDATA[We purchased MySQL support, and I installed the advisor software that comes with it, and checked out the tuning advisors. I feel like I&#8217;m back in the days before the Oracle wait interface, tuning everything with hit ratios, etc, and basically guessing which changes might help what how much. (Tune, cross your fingers, start over, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oracle2mysql.wordpress.com&amp;blog=1459066&amp;post=21&amp;subd=oracle2mysql&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We purchased MySQL support, and I installed the advisor software that comes with it, and checked out the tuning advisors.  I feel like I&#8217;m back in the days before the Oracle wait interface, tuning everything with hit ratios, etc, and basically guessing which changes might help what how much.  (Tune, cross your fingers, start over, try again.  Repeat.)  Like before I had ever read &#8220;Optimizing Oracle Performance&#8221; by Cary Millsap, or &#8220;Oracle Insights:Tales of the Oak Table&#8221;.</p>
<p>My #1 wish for MySQL at this point would be that version 6 would be instrumented, so that we could tune using wait events, to identify actual wait times and what contributed to them by how much.</p>
<p>For now, I get recommendations like &#8220;<span>Query Cache Has Sub-Optimal Hit Rate</span>&#8220;, which is giving me flashbacks&#8230;  (In our case, I don&#8217;t have to worry much about this in particular, and the advisors are good enough to let me know that I might &#8220;<em>Evaluate whether the query cache is suitable for your application. If you have a high rate of INSERT / UPDATE / DELETE statements compared to SELECT statements, then there may be little benefit to enabling the query cache.</em>&#8220;)</p>
<p>Anyway, it&#8217;s hit ratios all over again, making me pine for Oracle&#8217;s Automatic Workload Repository.  Where I get recommendations about specific queries or indexes, and estimates for what the performance improvements might be if I change them, based on actual times spent doing operations.  (And also, eg, how much time is spent waiting for things outside of the database, too, so you might avoid spending 80% of your time tuning something that will give your application an improvement of 2%.)</p>
<p>I think that, for now, the slow query log is my best friend.  It gives me actual times spent doing which queries, and from there I can tune those queries.  For the database itself, I&#8217;m back to comparing various ratios over time and trying to improve &#8220;bad&#8221; ones and seeing whether it makes a noticeable difference.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/oracle2mysql.wordpress.com/21/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/oracle2mysql.wordpress.com/21/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oracle2mysql.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oracle2mysql.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oracle2mysql.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oracle2mysql.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oracle2mysql.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oracle2mysql.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oracle2mysql.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oracle2mysql.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oracle2mysql.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oracle2mysql.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oracle2mysql.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oracle2mysql.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oracle2mysql.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oracle2mysql.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oracle2mysql.wordpress.com&amp;blog=1459066&amp;post=21&amp;subd=oracle2mysql&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oracle2mysql.wordpress.com/2007/09/06/oh-for-the-wait-interface/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/79c146b4c8eefd9f43271910f8929c7c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ben</media:title>
		</media:content>
	</item>
		<item>
		<title>Falcoln in the belly</title>
		<link>http://oracle2mysql.wordpress.com/2007/09/06/falcoln-in-the-belly/</link>
		<comments>http://oracle2mysql.wordpress.com/2007/09/06/falcoln-in-the-belly/#comments</comments>
		<pubDate>Thu, 06 Sep 2007 19:14:45 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://oracle2mysql.wordpress.com/2007/09/06/falcoln-in-the-belly/</guid>
		<description><![CDATA[Jeremy Cole&#8217;s post &#8220;On Falcon and the need to feel wanted&#8221; got me thinking&#8230; The MySQL family is gearing up for a new arrival. Falcon is still a baby in the belly, but it seems to already be getting more attention than its older and accomplished siblings (eg InnoDB). Maybe the proud mother-to-be has issues [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oracle2mysql.wordpress.com&amp;blog=1459066&amp;post=20&amp;subd=oracle2mysql&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Jeremy Cole&#8217;s post &#8220;<a href="http://jcole.us/blog/archives/2007/09/06/on-falcon-and-the-need-to-feel-wanted/">On Falcon and the need to feel wanted</a>&#8221; got me thinking&#8230;</p>
<p>The MySQL family is gearing up for a new arrival.  Falcon is still a baby in the belly, but it seems to already be getting more attention than its older and accomplished siblings (eg InnoDB).  Maybe the proud mother-to-be has issues because every time she looks in InnoDB&#8217;s eyes she can&#8217;t stop thinking about the new stepmother, Oracle.</p>
<p>She seems to think this one will be the best baby ever, and has pinned high hopes on what it will grow up to become.  Part of her excitement is because she is rightly taken with the brilliant father, Jim Starkey.  If Dad could invent MVCC and BLOBs, what will baby Falcon grow up to accomplish under his care?</p>
<p>Hopefully the proud parents will have a keen eye open to shortcomings as well as strengths. Spare the rod<br />
and spoil the child&#8230;  Brilliant Dads don&#8217;t always make perfect fathers (to say the least).  Time will tell, and we look forward to watching baby take its first steps and say its first words, and we hope it will live long and prosper.  And that Mom will take an equally strong role as Dad in raising and forming the character of their new blessing.  Based on the ultrasounds and other tests and measurements, there may be some issues that will need attention.</p>
<p>(Ultrasounds and commentary available from MySQL Performance Blog at<a href="http://www.mysqlperformanceblog.com/2007/01/08/innodb-vs-myisam-vs-falcon-benchmarks-part-1/"> InnoDB vs MyISAM vs Falcon benchmarks &#8211; part 1</a> and <a href="http://www.mysqlperformanceblog.com/2007/01/12/falcon-storage-engine-design-review/#more-145">Falcon Storage Engine Design Review</a>.)</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/oracle2mysql.wordpress.com/20/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/oracle2mysql.wordpress.com/20/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oracle2mysql.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oracle2mysql.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oracle2mysql.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oracle2mysql.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oracle2mysql.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oracle2mysql.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oracle2mysql.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oracle2mysql.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oracle2mysql.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oracle2mysql.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oracle2mysql.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oracle2mysql.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oracle2mysql.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oracle2mysql.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oracle2mysql.wordpress.com&amp;blog=1459066&amp;post=20&amp;subd=oracle2mysql&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oracle2mysql.wordpress.com/2007/09/06/falcoln-in-the-belly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/79c146b4c8eefd9f43271910f8929c7c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ben</media:title>
		</media:content>
	</item>
	</channel>
</rss>
