<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: MySQL Table Checksum 1.1.0 released</title>
	<link>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/</link>
	<description>Stay curious!</description>
	<pubDate>Sun, 20 Jul 2008 22:41:42 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.2</generator>

	<item>
		<title>By: Xaprb</title>
		<link>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/#comment-14721</link>
		<author>Xaprb</author>
		<pubDate>Sun, 15 Jun 2008 01:29:57 +0000</pubDate>
		<guid>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/#comment-14721</guid>
		<description>No, you can't.  You're right, it's not really that useful.  It's only CRC32 anyway -- not a very good way to checksum a lot of data.</description>
		<content:encoded><![CDATA[<p>No, you can&#8217;t.  You&#8217;re right, it&#8217;s not really that useful.  It&#8217;s only CRC32 anyway &#8212; not a very good way to checksum a lot of data.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: fleegan</title>
		<link>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/#comment-14718</link>
		<author>fleegan</author>
		<pubDate>Fri, 13 Jun 2008 16:26:13 +0000</pubDate>
		<guid>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/#comment-14718</guid>
		<description>Forgive me if this is the wrong place to ask...but, for myISAMS's using CHECKSUM TABLE, are there any way to pull the checksums into variables within Stored Procedures to test against?

So far, I haven't been able to &#38; have therefore found little use for the CHECKSUM TABLE feature.  Any clues or directions would be greatly appreciated.

-fleegan</description>
		<content:encoded><![CDATA[<p>Forgive me if this is the wrong place to ask&#8230;but, for myISAMS&#8217;s using CHECKSUM TABLE, are there any way to pull the checksums into variables within Stored Procedures to test against?</p>
<p>So far, I haven&#8217;t been able to &amp; have therefore found little use for the CHECKSUM TABLE feature.  Any clues or directions would be greatly appreciated.</p>
<p>-fleegan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Xaprb</title>
		<link>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/#comment-12225</link>
		<author>Xaprb</author>
		<pubDate>Wed, 11 Jul 2007 02:02:55 +0000</pubDate>
		<guid>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/#comment-12225</guid>
		<description>No, it'll work fine with replication running.</description>
		<content:encoded><![CDATA[<p>No, it&#8217;ll work fine with replication running.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Luis Torres</title>
		<link>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/#comment-12223</link>
		<author>Luis Torres</author>
		<pubDate>Wed, 11 Jul 2007 01:25:50 +0000</pubDate>
		<guid>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/#comment-12223</guid>
		<description>Question here:

If tables in the master get modified while mysql-table-checksum is running then this won't work, or will it?

In other words, do my master and slave have to be just sitting there accepting no connections for this to work? Or just one part has to be stopped (replication itself maybe).</description>
		<content:encoded><![CDATA[<p>Question here:</p>
<p>If tables in the master get modified while mysql-table-checksum is running then this won&#8217;t work, or will it?</p>
<p>In other words, do my master and slave have to be just sitting there accepting no connections for this to work? Or just one part has to be stopped (replication itself maybe).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Xaprb</title>
		<link>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/#comment-6819</link>
		<author>Xaprb</author>
		<pubDate>Tue, 15 May 2007 15:15:16 +0000</pubDate>
		<guid>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/#comment-6819</guid>
		<description>&lt;p&gt;This is done.  I will release this code soon, but for right now you can get it from the latest trunk in SVN.  I hope you get a chance to test it and report any bugs you find.&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>This is done.  I will release this code soon, but for right now you can get it from the latest trunk in SVN.  I hope you get a chance to test it and report any bugs you find.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Xaprb</title>
		<link>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/#comment-6657</link>
		<author>Xaprb</author>
		<pubDate>Mon, 14 May 2007 17:51:35 +0000</pubDate>
		<guid>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/#comment-6657</guid>
		<description>&lt;p&gt;Hi!  I think this is important.  Another person has mentioned it as well.  I would rather discuss it on the mysqltoolkit-discuss mailing list, but blog comments are okay as well.&lt;/p&gt;

&lt;p&gt;First, initial tests show that COUNT(*) is not much faster than the checksums, at least on InnoDB tables (I will publish these results soon).  So this strategy would not be a good one for all scenarios.  Let's say we just omit the COUNT(*) part and select the MIN() and MAX(), which can be satisfied quickly from indexes.  Then we divide this into ranges and repeatedly query, possibly with a sleep, as you said.  I think rather than just divide into a fixed number of ranges, the DBA should specify the maximum number of rows to checksum at once, and the tool can take care of dividing into ranges with &lt;code&gt;BETWEEN&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This has the disadvantage that the ranges might not be the same size and some of them might even be empty if there are holes in the sequence, but I think it is practical.&lt;/p&gt;

&lt;p&gt;This is an important feature I'll work on soon, but I'm not sure how soon -- some people have requested features for MySQL Table Sync that are also important.  You are welcome to help if you wish.  If you know Perl the code is relatively straightforward.  Patches are welcome.&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>Hi!  I think this is important.  Another person has mentioned it as well.  I would rather discuss it on the mysqltoolkit-discuss mailing list, but blog comments are okay as well.</p>
<p>First, initial tests show that COUNT(*) is not much faster than the checksums, at least on InnoDB tables (I will publish these results soon).  So this strategy would not be a good one for all scenarios.  Let&#8217;s say we just omit the COUNT(*) part and select the MIN() and MAX(), which can be satisfied quickly from indexes.  Then we divide this into ranges and repeatedly query, possibly with a sleep, as you said.  I think rather than just divide into a fixed number of ranges, the DBA should specify the maximum number of rows to checksum at once, and the tool can take care of dividing into ranges with <code>BETWEEN</code>.</p>
<p>This has the disadvantage that the ranges might not be the same size and some of them might even be empty if there are holes in the sequence, but I think it is practical.</p>
<p>This is an important feature I&#8217;ll work on soon, but I&#8217;m not sure how soon &#8212; some people have requested features for MySQL Table Sync that are also important.  You are welcome to help if you wish.  If you know Perl the code is relatively straightforward.  Patches are welcome.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: zhur</title>
		<link>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/#comment-6638</link>
		<author>zhur</author>
		<pubDate>Mon, 14 May 2007 15:05:11 +0000</pubDate>
		<guid>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/#comment-6638</guid>
		<description>Baron, what do you think about calculating checksum of big MyISAM tables by chunks?
For example, we have table persons with primary key (id).
&lt;code&gt;1. Let's determine table characteristics.
mysql&#62; select min(id), max(id), count(*) from persons;
 --------- ---------- ---------- 
&#124; min(id) &#124; max(id)  &#124; count(*) &#124;
 --------- ---------- ---------- 
&#124;      25 &#124; 12736201 &#124;  5417799 &#124;
 --------- ---------- ---------- &lt;/code&gt;
2. Now let's calculate checksums for chunks with replication. Also we can sleep between chunks for minimize locking time.
STEP = ( 12736201 - 25 ) / CHUNKS_NUM
chunk #0: id  12736201
3. Now we can compare checksums for all chunks and find differences.

This method can produce "false positives" errors, but very rarely(when we update primary key) and can't work for tables without primary/unique keys, but don't produce long locks - it's very important for some applications.

P.S. Sorry for my english ;-)</description>
		<content:encoded><![CDATA[<p>Baron, what do you think about calculating checksum of big MyISAM tables by chunks?<br />
For example, we have table persons with primary key (id).<br />
<code>1. Let's determine table characteristics.<br />
mysql&gt; select min(id), max(id), count(*) from persons;<br />
 &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-<br />
| min(id) | max(id)  | count(*) |<br />
 &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-<br />
|      25 | 12736201 |  5417799 |<br />
 &#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- </code><br />
2. Now let&#8217;s calculate checksums for chunks with replication. Also we can sleep between chunks for minimize locking time.<br />
STEP = ( 12736201 - 25 ) / CHUNKS_NUM<br />
chunk #0: id  12736201<br />
3. Now we can compare checksums for all chunks and find differences.</p>
<p>This method can produce &#8220;false positives&#8221; errors, but very rarely(when we update primary key) and can&#8217;t work for tables without primary/unique keys, but don&#8217;t produce long locks - it&#8217;s very important for some applications.</p>
<p>P.S. Sorry for my english ;-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Xaprb</title>
		<link>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/#comment-6504</link>
		<author>Xaprb</author>
		<pubDate>Fri, 11 May 2007 12:50:30 +0000</pubDate>
		<guid>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/#comment-6504</guid>
		<description>&lt;p&gt;Francois, it performs acceptably for me (that is a relative term of course) on larger data sets than that.  I will time it and write another article with numbers soon.  Thank you for the suggestion.&lt;/p&gt;

&lt;p&gt;I'm sure if MySQL would build something into the server, it would be more efficient than anything I can do outside the server.  Until they do that, your options are fairly limited (understatement of the month, haha).&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>Francois, it performs acceptably for me (that is a relative term of course) on larger data sets than that.  I will time it and write another article with numbers soon.  Thank you for the suggestion.</p>
<p>I&#8217;m sure if MySQL would build something into the server, it would be more efficient than anything I can do outside the server.  Until they do that, your options are fairly limited (understatement of the month, haha).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Xaprb</title>
		<link>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/#comment-6503</link>
		<author>Xaprb</author>
		<pubDate>Fri, 11 May 2007 12:47:22 +0000</pubDate>
		<guid>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/#comment-6503</guid>
		<description>&lt;p&gt;Hi Jaap, I think mysqldiff will probably help you, though I have never used it myself.&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>Hi Jaap, I think mysqldiff will probably help you, though I have never used it myself.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Francois Saint-Jacques</title>
		<link>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/#comment-6502</link>
		<author>Francois Saint-Jacques</author>
		<pubDate>Fri, 11 May 2007 12:26:50 +0000</pubDate>
		<guid>http://www.xaprb.com/blog/2007/05/05/mysql-table-checksum-110-released/#comment-6502</guid>
		<description>&lt;p&gt;Have you done extensive performance testing? I'm reading your past article about mysql table checksum and you're talking about a possible 'overhead'. Let say we have a 20G innodb table, I wonder how much time it take for the drive to melt down to death ;)&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>Have you done extensive performance testing? I&#8217;m reading your past article about mysql table checksum and you&#8217;re talking about a possible &#8216;overhead&#8217;. Let say we have a 20G innodb table, I wonder how much time it take for the drive to melt down to death ;)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
